I've made an effort to document what API endpoints we are using where and for what. The example responses here are just mock data, so I would also recommend referencing the documentation which I will link to and the endpoints themselves. Originally I was going to go tab by tab; however, a few of the endpoints are used across tabs. I indicated that in the usuage on the endpoints. If you have any questions feel free to comment here or reach out to me.
All /v1/**internal**/...
endpoints don't have public documentation, as far as I can tell.
It also seems like service instances make use of these endpoints instead of their being service instance specific endpoints. I'll be happy to dig into that further should it be helpful.
GET /v1/internal/ui/services
Example response:
Response
[
{
"Name":"service-0",
"Tags":[
"interface"
],
"ConnectedWithProxy":false,
"ConnectedWithGateway":true,
"GatewayConfig":{
},
"InstanceCount":2411,
"ExternalSources":[
"kubernetes"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"ChecksPassing":1,
"ChecksWarning":0,
"ChecksCritical":5
},
{
"Name":"service-0-proxy",
"Tags":[
"program",
"panel",
"pixel",
"panel"
],
"ConnectedWithProxy":true,
"ConnectedWithGateway":true,
"GatewayConfig":{
"AssociatedServiceCount":2261
},
"Kind":"connect-proxy",
"InstanceCount":4,
"ExternalSources":[
"vault"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"ChecksPassing":2,
"ChecksWarning":2,
"ChecksCritical":2
},
{
"Name":"service-2-mesh-gateway",
"Tags":[
"interface",
"array",
"feed",
"matrix",
"circuit",
"array",
"bus"
],
"ConnectedWithProxy":true,
"ConnectedWithGateway":true,
"GatewayConfig":{
"AssociatedServiceCount":3707
},
"Kind":"mesh-gateway",
"InstanceCount":6,
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"ChecksPassing":2,
"ChecksWarning":1,
"ChecksCritical":2
},
{
"Name":"service-3-ingress-gateway",
"Tags":[
"microchip",
"application",
"capacitor",
"matrix"
],
"ConnectedWithProxy":false,
"ConnectedWithGateway":false,
"GatewayConfig":{
"AssociatedServiceCount":2843
},
"Kind":"ingress-gateway",
"InstanceCount":4,
"ExternalSources":[
"lambda"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"ChecksPassing":1,
"ChecksWarning":10,
"ChecksCritical":1
},
{
"Name":"service-4-terminating-gateway",
"Tags":[
"alarm",
"panel",
"driver",
"transmitter",
"card"
],
"ConnectedWithProxy":false,
"ConnectedWithGateway":false,
"GatewayConfig":{
"AssociatedServiceCount":2460
},
"Kind":"terminating-gateway",
"InstanceCount":9,
"ExternalSources":[
""
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"ChecksPassing":1,
"ChecksWarning":6,
"ChecksCritical":1
},
{
"Name":"service-5-api-gateway",
"Tags":[
"interface"
],
"ConnectedWithProxy":false,
"ConnectedWithGateway":false,
"GatewayConfig":{
"AssociatedServiceCount":1434
},
"Kind":"api-gateway",
"InstanceCount":6,
"ExternalSources":[
"lambda"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"ChecksPassing":3,
"ChecksWarning":0,
"ChecksCritical":1
},
{
"Name":"service-6-mesh-gateway",
"Tags":[
"feed",
"port",
"capacitor",
"monitor",
"application",
"hard drive"
],
"ConnectedWithProxy":false,
"ConnectedWithGateway":false,
"GatewayConfig":{
},
"Kind":"mesh-gateway",
"InstanceCount":35,
"ExternalSources":[
"nomad"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"ChecksPassing":2,
"ChecksWarning":10,
"ChecksCritical":0
},
{
"Name":"service-7",
"Tags":[
"bus",
"bus",
"sensor",
"alarm"
],
"ConnectedWithProxy":false,
"ConnectedWithGateway":true,
"GatewayConfig":{
"AssociatedServiceCount":3623
},
"InstanceCount":1795,
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"ChecksPassing":5,
"ChecksWarning":5,
"ChecksCritical":1
},
{
"Name":"service-7-proxy",
"Tags":[
"interface",
"microchip",
"system",
"pixel",
"matrix",
"interface"
],
"ConnectedWithProxy":true,
"ConnectedWithGateway":false,
"GatewayConfig":{
},
"Kind":"connect-proxy",
"InstanceCount":3770,
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"ChecksPassing":6,
"ChecksWarning":3,
"ChecksCritical":0
}
]
Everything in the service list items depends on only this endpoint
GET /v1/health/service/:service
Example Response
[
{
"Node":{
"ID":"7037e928-d9e8-3b58-4712-6f5ded209002",
"Node":"node-0",
"Address":"59.41.1.130",
"Datacenter":"dc1",
"TaggedAddresses":{
"lan":"59.41.1.130",
"wan":"59.41.1.130"
},
"Meta":{
"service-0-network-segment":"",
"synthetic-node":false
},
"PeerName":"billing",
"CreateIndex":5,
"ModifyIndex":6
},
"Service":{
"ID":"service-0-with-id",
"PeerName":"billing",
"Service":"service-0",
"Namespace":"default",
"Partition":"default",
"Tags":[
"pixel",
"hard drive",
"circuit",
"firewall",
"port",
"monitor",
"firewall",
"firewall",
"capacitor",
"firewall"
],
"Weights":{
"Passing":1,
"Warning":1
},
"Meta":{
"consul-dashboard-url":"https://betty.name/?id={{Service}}",
"external-source":""
},
"Address":"",
"SocketPath":"/dolorem/explicabo/consequatur/veniamweb_enabled_disintermediate_directives.prc",
"Connect":{
},
"Proxy":{
"Expose":{
},
"MeshGateway":{
},
"Mode":"",
"TransparentProxy":""
},
"ProxyDestination":"",
"EnableTagOverride":false,
"CreateIndex":5,
"ModifyIndex":5
},
"Checks":[
{
"Node":"node-0",
"CheckID":"monitorHealth",
"Name":"matrix Status",
"Type":"ttl",
"Status":"critical",
"Notes":"In voluptatibus et a impedit rem architecto. Necessitatibus consequuntur architecto voluptas blanditiis eum doloribus et. Qui sit quam consequatur et amet molestiae eos. Ea aut consequatur nobis at sequi maxime et. Debitis qui ea provident hic ut similique at est.",
"Output":"1f4c:2752:d737:821d:11e3:604a:ac1f:4e2d http://Eulalia_Cole18:EzhRw56W9dCZb8o@sandra.com Opera/9.55 (Windows NT 6.2; U; CE Presto/2.9.167 Version/10.00)",
"ServiceID":"service-0",
"ServiceName":"",
"ServiceTags":[
"Tag"
],
"Definition":{
},
"CreateIndex":5,
"ModifyIndex":5
},
{
"Node":"node-0",
"CheckID":"sensorHealth",
"Name":"alarm Status",
"Type":"http",
"Status":"critical",
"Notes":"Eaque quos saepe nemo qui quasi labore accusantium et perspiciatis. Eveniet est voluptatibus et qui qui. Exercitationem aut consequatur molestias quas reprehenderit voluptatem eveniet suscipit. Id eligendi repudiandae deleniti vitae laudantium est alias.",
"Output":"4d7e:2931:2eb6:052a:dfe6:2329:d05b:65a7 https://Melissa93:Nlc_3nxtCkCpPXo@lavinia.biz Mozilla/5.0 (Windows NT 6.3; WOW64; rv:10.7) Gecko/20100101 Firefox/10.7.2",
"ServiceID":"service-0",
"ServiceName":"",
"ServiceTags":[
"Tag"
],
"Definition":{
},
"CreateIndex":5,
"ModifyIndex":5
},
{
"Node":"node-0",
"CheckID":"applicationHealth",
"Name":"matrix Status",
"Type":"alias",
"Status":"critical",
"Notes":"Doloremque et commodi qui sint numquam pariatur. Non dolor asperiores unde magnam non. Molestiae voluptatem exercitationem doloremque sit. Inventore praesentium rem minima dolorem. Dicta inventore explicabo minus id eum ratione iusto.",
"Output":"d426:8d3b:8975:9a9a:c46f:bf69:c506:c9e0 https://Shanny76:snaSpeARV27MeBD@ibrahim.com Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko",
"ServiceID":"service-0",
"ServiceName":"",
"ServiceTags":[
"Tag"
],
"Definition":{
},
"CreateIndex":5,
"ModifyIndex":5
},
{
"Node":"node-0",
"CheckID":"capacitorHealth",
"Name":"array Status",
"Type":"alias",
"Status":"passing",
"Notes":"Iure dolorem eum minima itaque aspernatur tempore rerum ex dicta. Dolor natus fuga voluptas veritatis optio ducimus consectetur. Occaecati accusantium qui explicabo voluptas qui.",
"Output":"36cb:e61c:512a:7527:4841:160a:060e:5c94 https://Cordia.Cronin:tPtHsvbf1K_Ttdu@kaci.com Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5.3; rv:10.2) Gecko/20100101 Firefox/10.2.1",
"ServiceID":"service-0",
"ServiceName":"",
"ServiceTags":[
"Tag"
],
"Definition":{
},
"CreateIndex":5,
"ModifyIndex":5
},
{
"Node":"node-0",
"CheckID":"alarmHealth",
"Name":"matrix Status",
"Type":"docker",
"Status":"passing",
"Notes":"Qui numquam occaecati. Asperiores quae animi sunt et molestiae. Et asperiores nobis repudiandae ab voluptatem sit dolor. Reprehenderit dicta sunt nihil fugiat provident et officia quia voluptate.",
"Output":"a8c8:a85e:8550:2afa:8e0f:a4e1:6544:490a https://Wilber.Hartmann93:hQYMAFwyWHO6PKe@bart.info Mozilla/5.0 (Windows NT 5.0; WOW64; rv:10.9) Gecko/20100101 Firefox/10.9.8",
"ServiceID":"service-0",
"ServiceName":"",
"ServiceTags":[
"Tag"
],
"Definition":{
},
"CreateIndex":5,
"ModifyIndex":5
},
{
"Node":"node-0",
"CheckID":"programHealth",
"Name":"bus Status",
"Type":"ttl",
"Status":"passing",
"Notes":"Nam error culpa quos. Eius tempore eos totam ab maxime sunt. Voluptas modi optio. Similique voluptate ducimus deserunt expedita. Quasi totam et unde perspiciatis culpa. Voluptatem maiores quaerat.",
"Output":"11d5:8278:61d7:fa52:a272:3aa5:7e1d:2773 https://Zita5:y7eANEOrYktKT3s@heidi.info Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6.6; rv:9.2) Gecko/20100101 Firefox/9.2.3",
"ServiceID":"",
"ServiceName":"",
"ServiceTags":[
"Tag"
],
"Definition":{
},
"CreateIndex":5,
"ModifyIndex":5
},
{
"Node":"node-0",
"CheckID":"circuitHealth",
"Name":"hard drive Status",
"Type":"alias",
"Status":"passing",
"Notes":"Rerum tenetur quia. Ea non consectetur consequuntur aut suscipit. Aperiam minima eaque animi incidunt qui voluptatem facere occaecati. Dignissimos impedit nobis ea eius dolore non sed ea ut.",
"Output":"a091:30dd:9911:0647:50d3:107a:2944:9b07 https://Ebba.Yundt:jjeoCrd9d5nxGUx@jordane.org Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_1) AppleWebKit/535.1.2 (KHTML, like Gecko) Chrome/20.0.809.0 Safari/535.1.2",
"ServiceID":"service-0",
"ServiceName":"",
"ServiceTags":[
"Tag"
],
"Definition":{
},
"CreateIndex":5,
"ModifyIndex":5
},
{
"Node":"node-0",
"CheckID":"alarmHealth",
"Name":"firewall Status",
"Type":"grpc",
"Status":"passing",
"Notes":"Qui fuga molestiae ipsam minima. Corporis aut praesentium dolorem consequatur enim illo ipsa. Et veritatis nesciunt harum dignissimos minima vitae optio iusto. Adipisci soluta voluptatem inventore architecto totam eaque voluptatem quam.",
"Output":"32fc:93b1:94ac:b07c:c572:8131:ee41:602a http://Lonny_Nitzsche5:vxmLhSXJw71Rxa_@jaycee.info Mozilla/5.0 (Windows; U; Windows NT 6.0) AppleWebKit/533.0.1 (KHTML, like Gecko) Chrome/22.0.891.0 Safari/533.0.1",
"ServiceID":"service-0",
"ServiceName":"",
"ServiceTags":[
"Tag"
],
"Definition":{
},
"CreateIndex":5,
"ModifyIndex":5
},
{
"Node":"node-0",
"CheckID":"sensorHealth",
"Name":"alarm Status",
"Type":"script",
"Status":"passing",
"Notes":"Et qui nisi harum libero laboriosam eius magni asperiores. Voluptatibus quae rerum. Rerum ut similique. Consequuntur itaque est perferendis in quidem.",
"Output":"bc25:4ced:661c:331f:ef98:e66d:0d6d:6985 http://Dorthy.Hilll26:hy9TURsup7eYyMS@araceli.info Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_9_3) AppleWebKit/534.0.1 (KHTML, like Gecko) Chrome/13.0.887.0 Safari/534.0.1",
"ServiceID":"service-0",
"ServiceName":"",
"ServiceTags":[
"Tag"
],
"Definition":{
},
"CreateIndex":5,
"ModifyIndex":5
},
{
"Node":"node-0",
"CheckID":"pixelHealth",
"Name":"card Status",
"Type":"alias",
"Status":"passing",
"Notes":"Voluptatem odio voluptates quia. Sit delectus ut aut esse aperiam. Esse quam excepturi quaerat quaerat perferendis aspernatur sequi inventore quos. Consectetur quas impedit possimus qui beatae voluptas velit omnis.",
"Output":"70ac:f78f:bc6e:8b4e:4641:024b:3ef4:370a https://Caroline_Lynch:Jpc4AmvqxfGfJMT@ned.com Mozilla/5.0 (Windows NT 6.0; rv:5.2) Gecko/20100101 Firefox/5.2.4",
"ServiceID":"service-0",
"ServiceName":"",
"ServiceTags":[
"Tag"
],
"Definition":{
},
"CreateIndex":5,
"ModifyIndex":5
}
]
}
]
- Requested on the top-level service show page to get information about the service instances.
https://developer.hashicorp.com/consul/api-docs/health#list-checks-for-service
GET /v1/catalog/connect/:service
Example response
[
{
"ID":"3208ed98-e84b-488f-8391-99d104fe5744",
"Node":"node-0",
"Address":"239.42.168.2",
"Datacenter":"dc1",
"TaggedAddresses":{
"lan":"250.189.250.129",
"wan":"136.147.251.128"
},
"NodeMeta":{
"consul-network-segment":""
},
"ServiceConnect":{
},
"ServiceKind":"connect-proxy",
"ServiceID":"service-0-with-id-proxy",
"ServiceName":"service-0-proxy",
"ServiceTags":[
"Tag",
"Another Tag"
],
"ServiceAddress":"245.181.120.18",
"ServiceMeta":{
},
"ServicePort":21180,
"ServiceEnableTagOverride":false,
"ServiceProxy":{
"Config":{
"protocol":"http"
},
"Expose":{
"Checks":true,
"Paths":[
{
"Path":"/consequuntur/architecto/voluptas/blanditiis/eummonitor.emma",
"Protocol":"http2",
"LocalPathPort":278,
"ListenerPort":4423
},
{
"Path":"/molestiae",
"Protocol":"grpc",
"LocalPathPort":26434,
"ListenerPort":7178
},
{
"Path":"/nobis/at",
"Protocol":"grpc",
"LocalPathPort":16049,
"ListenerPort":50828
}
]
},
"Mode":"transparent",
"TransparentProxy":{
},
"DestinationServiceName":"service-0",
"DestinationServiceID":"service-0-with-id",
"LocalServiceSocketMode":"0600",
"LocalServiceSocketPath":"/provident/hic/utchecking_account_engineer_digital.twds"
},
"ServiceSocketPath":"",
"ServiceProxyDestination":"service-0",
"ServiceWeights":{
"Passing":1,
"Warning":1
},
"CreateIndex":11,
"ModifyIndex":11
},
{
"ID":"52d73782-1d11-4e36-84aa-c1f4e2d752ff",
"Node":"node-1",
"Address":"48.4.98.240",
"Datacenter":"dc1",
"TaggedAddresses":{
"lan":"192.30.25.134",
"wan":"231.55.22.9"
},
"NodeMeta":{
"consul-network-segment":""
},
"ServiceConnect":{
},
"ServiceKind":"connect-proxy",
"ServiceID":"service-0-with-id-proxy",
"ServiceName":"service-0-proxy",
"ServiceTags":[
"Tag",
"Another Tag"
],
"ServiceAddress":"171.58.146.85",
"ServiceMeta":{
},
"ServicePort":21165,
"ServiceEnableTagOverride":false,
"ServiceProxy":{
"Config":{
"protocol":"http"
},
"Expose":{
"Checks":true,
"Paths":[
{
"Path":"/quo/eaethiopian_birr.mpe",
"Protocol":"grpc",
"LocalPathPort":56831,
"ListenerPort":6098
},
{
"Path":"/voluptates/dolores/nam",
"Protocol":"grpc",
"LocalPathPort":2463,
"ListenerPort":32331
},
{
"Path":"/nemo/qui/quasi/labore/accusantiumturnpike_personal_loan_account.xsm",
"Protocol":"http2",
"LocalPathPort":53796,
"ListenerPort":50066
}
]
},
"Mode":"",
"TransparentProxy":{
},
"DestinationServiceName":"service-0",
"DestinationServiceID":"service-0-with-id",
"LocalServiceSocketMode":"0600",
"LocalServiceSocketPath":"/molestias/quas/reprehenderit/voluptatem/eveniet"
},
"ServiceSocketPath":"",
"ServiceProxyDestination":"service-0",
"ServiceWeights":{
"Passing":1,
"Warning":1
},
"CreateIndex":11,
"ModifyIndex":11
},
{
"ID":"abbe717b-04d7-4e29-b12e-b6052adfe623",
"Node":"node-2",
"Address":"42.153.210.12",
"Datacenter":"dc1",
"TaggedAddresses":{
"lan":"89.181.111.89",
"wan":"166.114.136.181"
},
"NodeMeta":{
"consul-network-segment":""
},
"ServiceConnect":{
},
"ServiceKind":"connect-proxy",
"ServiceID":"service-0-with-id-proxy",
"ServiceName":"service-0-proxy",
"ServiceTags":[
"Tag",
"Another Tag"
],
"ServiceAddress":"63.25.238.121",
"ServiceMeta":{
},
"ServicePort":21203,
"ServiceEnableTagOverride":false,
"ServiceProxy":{
"Config":{
"protocol":"http"
},
"Expose":{
"Checks":true,
"Paths":[
{
"Path":"/expedita/consectetur/et/velpci_cross_platform.xpm",
"Protocol":"http",
"LocalPathPort":33072,
"ListenerPort":38066
},
{
"Path":"/animi/enim/cumque/ut/possimuspayment_anguilla_regional.tfi",
"Protocol":"http2",
"LocalPathPort":14099,
"ListenerPort":55586
},
{
"Path":"/non/dolor/asperioresgabon.xltx",
"Protocol":"http",
"LocalPathPort":19378,
"ListenerPort":1939
}
]
},
"Mode":"",
"TransparentProxy":{
},
"DestinationServiceName":"service-0",
"DestinationServiceID":"service-0-with-id",
"LocalServiceSocketMode":"0600",
"LocalServiceSocketPath":"/praesentium"
},
"ServiceSocketPath":"",
"ServiceProxyDestination":"service-0",
"ServiceWeights":{
"Passing":1,
"Warning":1
},
"CreateIndex":11,
"ModifyIndex":11
},
{
"ID":"42b101b9-d27d-4426-8d3b-89759a9ac46f",
"Node":"node-3",
"Address":"187.242.107.148",
"Datacenter":"dc1",
"TaggedAddresses":{
"lan":"194.91.2.96",
"wan":"207.150.232.6"
},
"NodeMeta":{
"consul-network-segment":""
},
"ServiceConnect":{
},
"ServiceKind":"connect-proxy",
"ServiceID":"service-0-with-id-proxy",
"ServiceName":"service-0-proxy",
"ServiceTags":[
"Tag",
"Another Tag"
],
"ServiceAddress":"242.225.165.24",
"ServiceMeta":{
},
"ServicePort":21196,
"ServiceEnableTagOverride":false,
"ServiceProxy":{
"Config":{
"protocol":"http"
},
"Expose":{
"Checks":true,
"Paths":[
{
"Path":"/etinteractive_calculating_incredible.mvb",
"Protocol":"http2",
"LocalPathPort":6380,
"ListenerPort":37074
},
{
"Path":"/labore",
"Protocol":"http2",
"LocalPathPort":1694,
"ListenerPort":47035
},
{
"Path":"/autem/odio",
"Protocol":"http2",
"LocalPathPort":26162,
"ListenerPort":60868
}
]
},
"Mode":"direct",
"TransparentProxy":{
},
"DestinationServiceName":"service-0",
"DestinationServiceID":"service-0-with-id",
"LocalServiceAddress":"61.239.99.43",
"LocalServicePort":25198
},
"ServiceSocketPath":"",
"ServiceProxyDestination":"service-0",
"ServiceWeights":{
"Passing":1,
"Warning":1
},
"CreateIndex":11,
"ModifyIndex":11
},
{
"ID":"4f1aa51b-c895-41b7-b680-91d936cbe61c",
"Node":"node-4",
"Address":"80.16.44.165",
"Datacenter":"dc1",
"TaggedAddresses":{
"lan":"120.80.45.112",
"wan":"69.141.71.23"
},
"NodeMeta":{
"consul-network-segment":""
},
"ServiceConnect":{
},
"ServiceKind":"connect-proxy",
"ServiceID":"service-0-with-id-proxy",
"ServiceName":"service-0-proxy",
"ServiceTags":[
"Tag",
"Another Tag"
],
"ServiceAddress":"18.98.8.162",
"ServiceMeta":{
},
"ServicePort":21009,
"ServiceEnableTagOverride":false,
"ServiceProxy":{
"Config":{
"protocol":"http"
},
"Expose":{
"Checks":true,
"Paths":[
{
"Path":"/consequatur/eveniet",
"Protocol":"grpc",
"LocalPathPort":36940,
"ListenerPort":17283
},
{
"Path":"/quia/nesciunt/deleniti/esseai_personal_loan_account.kpr",
"Protocol":"http",
"LocalPathPort":5867,
"ListenerPort":56714
},
{
"Path":"/eveniettable_payment_tanzania.grv",
"Protocol":"grpc",
"LocalPathPort":3474,
"ListenerPort":6936
}
]
},
"Mode":"transparent",
"TransparentProxy":{
},
"DestinationServiceName":"service-0",
"DestinationServiceID":"service-0-with-id",
"LocalServiceAddress":"40.32.119.165",
"LocalServicePort":63583
},
"ServiceSocketPath":"",
"ServiceProxyDestination":"service-0",
"ServiceWeights":{
"Passing":1,
"Warning":1
},
"CreateIndex":11,
"ModifyIndex":11
},
{
"ID":"a509387f-099e-4eae-bae0-052e611bd879",
"Node":"node-5",
"Address":"45.104.162.134",
"Datacenter":"dc1",
"TaggedAddresses":{
"lan":"205.141.175.135",
"wan":"82.226.137.80"
},
"NodeMeta":{
"consul-network-segment":""
},
"ServiceConnect":{
},
"ServiceKind":"connect-proxy",
"ServiceID":"service-0-with-id-proxy",
"ServiceName":"service-0-proxy",
"ServiceTags":[
"Tag",
"Another Tag"
],
"ServiceAddress":"83.3.43.173",
"ServiceMeta":{
},
"ServicePort":21241,
"ServiceEnableTagOverride":false,
"ServiceProxy":{
"Config":{
"protocol":"http"
},
"Expose":{
"Checks":true,
"Paths":[
{
"Path":"/unde/eveniet/quae/sapientedirect.sldm",
"Protocol":"http2",
"LocalPathPort":16523,
"ListenerPort":17408
},
{
"Path":"/error/sitdirector_uae_dirham_mobility.ufd",
"Protocol":"http2",
"LocalPathPort":2147,
"ListenerPort":30742
},
{
"Path":"/suscipit",
"Protocol":"http2",
"LocalPathPort":25651,
"ListenerPort":59413
}
]
},
"Mode":"transparent",
"TransparentProxy":{
},
"DestinationServiceName":"service-0",
"DestinationServiceID":"service-0-with-id",
"LocalServiceAddress":"107.124.58.71",
"LocalServicePort":32461
},
"ServiceSocketPath":"",
"ServiceProxyDestination":"service-0",
"ServiceWeights":{
"Passing":1,
"Warning":1
},
"CreateIndex":11,
"ModifyIndex":11
}
]
- Requested from the top-level service show page if the service is not a
connect-proxy
or amesh-gateway
. The proxy instance health checks are included in the service instance health checks (see this commit for more information). - the proxy count is also used as one of the conditions for if we should show the topology tab.
- We seem to requests `GET /v1/health/{service-name}-proxy after doing this request to get proxy instances. I think it has to do with this code but I am having a time confirming that. This is more-so a note for myself.
https://developer.hashicorp.com/consul/api-docs/health#list-checks-for-service
GET /discovery-chain/:service
Example Response
{
"Chain":{
"ServiceName":"service-0",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"Protocol":"http",
"StartNode":"router:service-0",
"Nodes":{
"router:service-0":{
"Type":"router",
"Name":"service-0",
"Routes":[
{
"NextNode":"resolver:v3.program.default.default.dc1",
"Definition":{
"Match":{
"HTTP":{
"PathExact":"/dolorum/dolorem/explicabo",
"QueryParam":[
{
"Name":"circuit",
"Exact":true
},
{
"Name":"sensor",
"Exact":true
}
]
}
},
"Destination":{
"Service":"resolver:v3.program.default.default.dc1",
"PrefixRewrite":"/"
}
}
},
{
"NextNode":"resolver:v2.pixel.default.default.dc1",
"Definition":{
"Match":{
"HTTP":{
"":"",
"QueryParam":[
{
"Name":"monitor",
"Regex":"[abc]"
},
{
"Name":"firewall",
"Prefix":"abc"
}
],
"Methods":[
"GET",
"POST",
"OPTIONS",
"HEAD"
]
}
},
"Destination":{
"Service":"resolver:v2.pixel.default.default.dc1",
"PrefixRewrite":"/"
}
}
},
{
"NextNode":"resolver:hard-drive.default.default.dc1",
"Definition":{
"Match":{
"HTTP":{
"":"",
"Header":[
{
"Name":"X-Driver",
"Present":true
},
{
"Name":"X-Protocol",
"Regex":"[abc]"
}
],
"Methods":[
"OPTIONS",
"DELETE",
"POST",
"PATCH"
]
}
},
"Destination":{
"Service":"resolver:hard-drive.default.default.dc1",
"PrefixRewrite":"/"
}
}
},
{
"NextNode":"resolver:v1.bus.default.default.dc1",
"Definition":{
"Match":{
"HTTP":{
"":"",
"Header":[
{
"Name":"X-Pixel",
"Regex":"[abc]"
},
{
"Name":"X-Port",
"Invert":true,
"Present":true
}
]
}
},
"Destination":{
"Service":"resolver:v1.bus.default.default.dc1",
"PrefixRewrite":"/"
}
}
},
{
"NextNode":"resolver:v2.firewall.default.default.dc1",
"Definition":{
"Match":{
"HTTP":{
"PathExact":"/voluptatumlicensed.prf",
"QueryParam":[
{
"Name":"microchip",
"Prefix":"abc"
},
{
"Name":"protocol",
"Exact":true
}
],
"Methods":[
"POST",
"OPTIONS",
"PATCH"
]
}
},
"Destination":{
"Service":"resolver:v2.firewall.default.default.dc1",
"PrefixRewrite":"/"
}
}
},
{
"NextNode":"resolver:firewall.default.default.dc1",
"Definition":{
"Match":{
"HTTP":{
"PathExact":"/facere/sed/aut/cupiditate/et",
"Methods":[
"OPTIONS",
"HEAD",
"POST",
"PATCH"
]
}
},
"Destination":{
"Service":"resolver:firewall.default.default.dc1",
"PrefixRewrite":"/"
}
}
}
]
},
"resolver:program.default.default.dc1":{
"Type":"resolver",
"Name":"program.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"program.default.default.fail-1-dc1",
"program.default.default.fail-2-dc1"
]
},
"Target":"program.default.default.dc1"
}
},
"resolver:v1.program.default.default.dc1":{
"Type":"resolver",
"Name":"v1.program.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"v1.program.default.default.fail-1-dc1",
"v1.program.default.default.fail-2-dc1"
]
},
"Target":"v1.program.default.default.dc1"
}
},
"resolver:v2.program.default.default.dc1":{
"Type":"resolver",
"Name":"v2.program.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"v2.program.default.default.fail-1-dc1",
"v2.program.default.default.fail-2-dc1"
]
},
"Target":"v2.program.default.default.dc1"
}
},
"resolver:v3.program.default.default.dc1":{
"Type":"resolver",
"Name":"v3.program.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"v3.program.default.default.fail-1-dc1",
"v3.program.default.default.fail-2-dc1"
]
},
"Target":"v3.program.default.default.dc1"
}
},
"resolver:panel.default.default.dc1":{
"Type":"resolver",
"Name":"panel.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"panel.default.default.dc1"
}
},
"resolver:v1.panel.default.default.dc1":{
"Type":"resolver",
"Name":"v1.panel.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"v1.panel.default.default.dc1"
}
},
"resolver:v2.panel.default.default.dc1":{
"Type":"resolver",
"Name":"v2.panel.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"v2.panel.default.default.dc1"
}
},
"resolver:v3.panel.default.default.dc1":{
"Type":"resolver",
"Name":"v3.panel.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"v3.panel.default.default.dc1"
}
},
"resolver:driver.default.default.dc1":{
"Type":"resolver",
"Name":"driver.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"driver.default.default.dc1"
}
},
"resolver:v1.driver.default.default.dc1":{
"Type":"resolver",
"Name":"v1.driver.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"v1.driver.default.default.dc1"
}
},
"resolver:v2.driver.default.default.dc1":{
"Type":"resolver",
"Name":"v2.driver.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"v2.driver.default.default.dc1"
}
},
"resolver:firewall.default.default.dc1":{
"Type":"resolver",
"Name":"firewall.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"firewall.default.default.fail-1-dc1",
"firewall.default.default.fail-2-dc1",
"firewall.default.default.fail-3-dc1"
]
},
"Target":"firewall.default.default.dc1"
}
},
"resolver:v1.firewall.default.default.dc1":{
"Type":"resolver",
"Name":"v1.firewall.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"v1.firewall.default.default.fail-1-dc1",
"v1.firewall.default.default.fail-2-dc1",
"v1.firewall.default.default.fail-3-dc1"
]
},
"Target":"v1.firewall.default.default.dc1"
}
},
"resolver:v2.firewall.default.default.dc1":{
"Type":"resolver",
"Name":"v2.firewall.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"v2.firewall.default.default.fail-1-dc1",
"v2.firewall.default.default.fail-2-dc1",
"v2.firewall.default.default.fail-3-dc1"
]
},
"Target":"v2.firewall.default.default.dc1"
}
},
"resolver:circuit.default.default.dc1":{
"Type":"resolver",
"Name":"circuit.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"circuit.default.default.dc1"
}
},
"resolver:v1.circuit.default.default.dc1":{
"Type":"resolver",
"Name":"v1.circuit.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"v1.circuit.default.default.dc1"
}
},
"resolver:bus.default.default.dc1":{
"Type":"resolver",
"Name":"bus.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"bus.default.default.fail-1-dc1"
]
},
"Target":"bus.default.default.dc1"
}
},
"resolver:v1.bus.default.default.dc1":{
"Type":"resolver",
"Name":"v1.bus.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"v1.bus.default.default.fail-1-dc1"
]
},
"Target":"v1.bus.default.default.dc1"
}
},
"resolver:pixel.default.default.dc1":{
"Type":"resolver",
"Name":"pixel.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"pixel.default.default.dc1"
}
},
"resolver:v1.pixel.default.default.dc1":{
"Type":"resolver",
"Name":"v1.pixel.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"v1.pixel.default.default.dc1"
}
},
"resolver:v2.pixel.default.default.dc1":{
"Type":"resolver",
"Name":"v2.pixel.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"v2.pixel.default.default.dc1"
}
},
"resolver:v3.pixel.default.default.dc1":{
"Type":"resolver",
"Name":"v3.pixel.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"v3.pixel.default.default.dc1"
}
},
"resolver:hard-drive.default.default.dc1":{
"Type":"resolver",
"Name":"hard-drive.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"hard-drive.default.default.fail-1-dc1",
"hard-drive.default.default.fail-2-dc1",
"hard-drive.default.default.fail-3-dc1"
]
},
"Target":"hard-drive.default.default.dc1"
}
},
"resolver:v1.hard-drive.default.default.dc1":{
"Type":"resolver",
"Name":"v1.hard-drive.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"v1.hard-drive.default.default.fail-1-dc1",
"v1.hard-drive.default.default.fail-2-dc1",
"v1.hard-drive.default.default.fail-3-dc1"
]
},
"Target":"v1.hard-drive.default.default.dc1"
}
},
"resolver:v2.hard-drive.default.default.dc1":{
"Type":"resolver",
"Name":"v2.hard-drive.default.default.dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Failover":{
"Targets":[
"v2.hard-drive.default.default.fail-1-dc1",
"v2.hard-drive.default.default.fail-2-dc1",
"v2.hard-drive.default.default.fail-3-dc1"
]
},
"Target":"v2.hard-drive.default.default.dc1"
}
},
"resolver:program.default.default.redirect-dc1":{
"Type":"resolver",
"Name":"program.default.default.redirect-dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"program.default.default.redirect-dc1"
}
},
"resolver:panel.default.default.redirect-dc1":{
"Type":"resolver",
"Name":"panel.default.default.redirect-dc1",
"Resolver":{
"ConnectTimeout":"5s",
"Target":"panel.default.default.redirect-dc1"
}
},
"splitter:service-0-circuit.default.default":{
"Type":"splitter",
"Name":"service-0-circuit.default.default",
"Splits":[
{
"Weight":100,
"NextNode":"resolver:circuit.default.default.dc1"
}
]
},
"splitter:service-0-port.default.default":{
"Type":"splitter",
"Name":"service-0-port.default.default",
"Splits":[
{
"Weight":100,
"NextNode":"resolver:v1.pixel.default.default.dc1"
}
]
},
"splitter:service-0-firewall.default.default":{
"Type":"splitter",
"Name":"service-0-firewall.default.default",
"Splits":[
{
"Weight":100,
"NextNode":"resolver:circuit.default.default.dc1"
}
]
},
"splitter:service-0-capacitor.default.default":{
"Type":"splitter",
"Name":"service-0-capacitor.default.default",
"Splits":[
{
"Weight":100,
"NextNode":"resolver:circuit.default.default.dc1"
}
]
}
},
"Targets":{
"program.default.default.dc1":{
"ID":"program.default.default.dc1",
"Service":"program",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"SNI":"program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul",
"Name":"program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul"
},
"v1.program.default.default.dc1":{
"ID":"v1.program.default.default.dc1",
"Service":"program",
"ServiceSubset":"v1",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v1"
},
"SNI":"v1.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul",
"Name":"v1.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul"
},
"v2.program.default.default.dc1":{
"ID":"v2.program.default.default.dc1",
"Service":"program",
"ServiceSubset":"v2",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v2"
},
"SNI":"v2.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul",
"Name":"v2.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul"
},
"v3.program.default.default.dc1":{
"ID":"v3.program.default.default.dc1",
"Service":"program",
"ServiceSubset":"v3",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v3"
},
"SNI":"v3.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul",
"Name":"v3.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul"
},
"panel.default.default.dc1":{
"ID":"panel.default.default.dc1",
"Service":"panel",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"SNI":"panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul",
"Name":"panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul"
},
"v1.panel.default.default.dc1":{
"ID":"v1.panel.default.default.dc1",
"Service":"panel",
"ServiceSubset":"v1",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v1"
},
"SNI":"v1.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul",
"Name":"v1.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul"
},
"v2.panel.default.default.dc1":{
"ID":"v2.panel.default.default.dc1",
"Service":"panel",
"ServiceSubset":"v2",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v2"
},
"SNI":"v2.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul",
"Name":"v2.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul"
},
"v3.panel.default.default.dc1":{
"ID":"v3.panel.default.default.dc1",
"Service":"panel",
"ServiceSubset":"v3",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v3"
},
"SNI":"v3.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul",
"Name":"v3.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul"
},
"driver.default.default.dc1":{
"ID":"driver.default.default.dc1",
"Service":"driver",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"SNI":"driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul",
"Name":"driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul"
},
"v1.driver.default.default.dc1":{
"ID":"v1.driver.default.default.dc1",
"Service":"driver",
"ServiceSubset":"v1",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v1"
},
"SNI":"v1.driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul",
"Name":"v1.driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul"
},
"v2.driver.default.default.dc1":{
"ID":"v2.driver.default.default.dc1",
"Service":"driver",
"ServiceSubset":"v2",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v2"
},
"SNI":"v2.driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul",
"Name":"v2.driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul"
},
"firewall.default.default.dc1":{
"ID":"firewall.default.default.dc1",
"Service":"firewall",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"SNI":"firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul",
"Name":"firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul"
},
"v1.firewall.default.default.dc1":{
"ID":"v1.firewall.default.default.dc1",
"Service":"firewall",
"ServiceSubset":"v1",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v1"
},
"SNI":"v1.firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul",
"Name":"v1.firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul"
},
"v2.firewall.default.default.dc1":{
"ID":"v2.firewall.default.default.dc1",
"Service":"firewall",
"ServiceSubset":"v2",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v2"
},
"SNI":"v2.firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul",
"Name":"v2.firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul"
},
"circuit.default.default.dc1":{
"ID":"circuit.default.default.dc1",
"Service":"circuit",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"SNI":"circuit.default.default.dc1.internal.2b101b9d-27d4-4268-93b8-9759a9ac46fb.consul",
"Name":"circuit.default.default.dc1.internal.2b101b9d-27d4-4268-93b8-9759a9ac46fb.consul"
},
"v1.circuit.default.default.dc1":{
"ID":"v1.circuit.default.default.dc1",
"Service":"circuit",
"ServiceSubset":"v1",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v1"
},
"SNI":"v1.circuit.default.default.dc1.internal.2b101b9d-27d4-4268-93b8-9759a9ac46fb.consul",
"Name":"v1.circuit.default.default.dc1.internal.2b101b9d-27d4-4268-93b8-9759a9ac46fb.consul"
},
"bus.default.default.dc1":{
"ID":"bus.default.default.dc1",
"Service":"bus",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"SNI":"bus.default.default.dc1.internal.f69c506c-9e0f-4ea1-80dd-a48db15a8192.consul",
"Name":"bus.default.default.dc1.internal.f69c506c-9e0f-4ea1-80dd-a48db15a8192.consul"
},
"v1.bus.default.default.dc1":{
"ID":"v1.bus.default.default.dc1",
"Service":"bus",
"ServiceSubset":"v1",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v1"
},
"SNI":"v1.bus.default.default.dc1.internal.f69c506c-9e0f-4ea1-80dd-a48db15a8192.consul",
"Name":"v1.bus.default.default.dc1.internal.f69c506c-9e0f-4ea1-80dd-a48db15a8192.consul"
},
"pixel.default.default.dc1":{
"ID":"pixel.default.default.dc1",
"Service":"pixel",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"SNI":"pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul",
"Name":"pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul"
},
"v1.pixel.default.default.dc1":{
"ID":"v1.pixel.default.default.dc1",
"Service":"pixel",
"ServiceSubset":"v1",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v1"
},
"SNI":"v1.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul",
"Name":"v1.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul"
},
"v2.pixel.default.default.dc1":{
"ID":"v2.pixel.default.default.dc1",
"Service":"pixel",
"ServiceSubset":"v2",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v2"
},
"SNI":"v2.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul",
"Name":"v2.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul"
},
"v3.pixel.default.default.dc1":{
"ID":"v3.pixel.default.default.dc1",
"Service":"pixel",
"ServiceSubset":"v3",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v3"
},
"SNI":"v3.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul",
"Name":"v3.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul"
},
"hard-drive.default.default.dc1":{
"ID":"hard-drive.default.default.dc1",
"Service":"hard-drive",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"SNI":"hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul",
"Name":"hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul"
},
"v1.hard-drive.default.default.dc1":{
"ID":"v1.hard-drive.default.default.dc1",
"Service":"hard-drive",
"ServiceSubset":"v1",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v1"
},
"SNI":"v1.hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul",
"Name":"v1.hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul"
},
"v2.hard-drive.default.default.dc1":{
"ID":"v2.hard-drive.default.default.dc1",
"Service":"hard-drive",
"ServiceSubset":"v2",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"Subset":{
"Filter":"Service.Meta.value == v2"
},
"SNI":"v2.hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul",
"Name":"v2.hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul"
},
"program.default.default.redirect-dc1":{
"ID":"program.default.default.redirect-dc1",
"Service":"program",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"SNI":"program.default.default.redirect-dc1.internal.160a060e-5c94-4a32-b6e8-d69f511d0ebb.consul",
"Name":"program.default.default.redirect-dc1.internal.160a060e-5c94-4a32-b6e8-d69f511d0ebb.consul"
},
"panel.default.default.redirect-dc1":{
"ID":"panel.default.default.redirect-dc1",
"Service":"panel",
"Namespace":"default",
"Partition":"default",
"Datacenter":"dc1",
"MeshGateway":{
},
"SNI":"panel.default.default.redirect-dc1.internal.27aa8e4b-01e8-4227-afa5-09387f099eea.consul",
"Name":"panel.default.default.redirect-dc1.internal.27aa8e4b-01e8-4227-afa5-09387f099eea.consul"
}
}
}
}
A note from the code
{{! currently we use the discovery chain endpoint to understand whether }}
{{! connect is enabled/disabled. We get a 500 error when its disabled }}
{{! and use this to set MeshEnabled on the Datacenter }}
{{! if once chain is set, i.e. we've checked this dc we remove the DataSource }}
{{! which will mark it for closure, which possibly could be reopened if }}
{{! the user clicks the routing/disco-chain tab}}
- Requested once at the top-level service show page if it's a
connect-proxy
or amesh-gateway
. The request is used to set theMeshEnabled
attribute on the datacenter. It may be re-requested on the routing tab. - This is also requested as a blocking query on the routing tab. The Chain that is returned in the response is what is used to display information on that tab.
https://developer.hashicorp.com/consul/api-docs/discovery-chain#read-compiled-discovery-chain
This tab is nested under the general service show-page and shows if the service is an ingress-gateway
and not a peer.
GET /v1/internal/ui/gateway-services-nodes/:service
Example Response
[
{
"Name":"service-0",
"Namespace":"program-ns-0",
"Tags":[
"driver"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"InstanceCount":0,
"ChecksPassing":5,
"ChecksWarning":5,
"ChecksCritical":5,
"ExternalSources":[
"aws"
],
"GatewayConfig":{
"Addresses":[
"tyler.name:13988",
"betty.name:40560",
"*.augusta.com:18477",
"*.tatyana.info:30255"
]
}
},
{
"Name":"service-1",
"Namespace":"default",
"Tags":[
"card",
"capacitor",
"panel"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"InstanceCount":66,
"ChecksPassing":8,
"ChecksWarning":5,
"ChecksCritical":3,
"ExternalSources":[
""
],
"GatewayConfig":{
"Addresses":[
"anya.net:58194",
"aracely.org:29926",
"*.yvette.com:48261",
"aiden.info:278",
"christop.org:8971"
]
}
},
{
"Name":"service-2",
"Namespace":"feed-ns-2",
"Tags":[
"bandwidth",
"array",
"feed",
"bus"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"InstanceCount":15,
"ChecksPassing":2,
"ChecksWarning":3,
"ChecksCritical":2,
"ExternalSources":[
"kubernetes"
],
"GatewayConfig":{
"Addresses":[
"audie.org:16676",
"christa.info:23886",
"rosamond.info:12629",
"julian.biz:5398",
"*.axel.com:59576",
"hillard.com:19524"
]
}
},
{
"Name":"service-3",
"Namespace":"alarm-ns-3",
"Tags":[
"application",
"protocol",
"matrix",
"port",
"circuit",
"panel",
"transmitter"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"InstanceCount":45,
"ChecksPassing":1,
"ChecksWarning":2,
"ChecksCritical":0,
"ExternalSources":[
"consul-api-gateway"
],
"GatewayConfig":{
"Addresses":[
"susana.biz:5805"
]
}
},
{
"Name":"service-4",
"Namespace":"driver-ns-4",
"Tags":[
"program",
"hard drive",
"card",
"alarm",
"port",
"monitor",
"array"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"InstanceCount":61,
"ChecksPassing":2,
"ChecksWarning":9,
"ChecksCritical":0,
"ExternalSources":[
"terraform"
],
"GatewayConfig":{
"Addresses":[
"taurean.com:32331",
"*.eloisa.info:4634",
"alena.name:35618",
"stefan.name:64427",
"gonzalo.net:50066"
]
}
},
{
"Name":"service-5",
"Namespace":"card-ns-5",
"Tags":[
"transmitter"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"InstanceCount":51,
"ChecksPassing":2,
"ChecksWarning":3,
"ChecksCritical":5,
"ExternalSources":[
"terraform"
],
"GatewayConfig":{
"Addresses":[
"maryam.com:17056"
]
}
},
{
"Name":"service-6",
"Namespace":"bus-ns-6",
"Tags":[
"circuit",
"panel",
"hard drive",
"program",
"bandwidth"
],
"Nodes":[
"node-0",
"node-1",
"node-2",
"node-3",
"node-4",
"node-5",
"node-6",
"node-7",
"node-8",
"node-9",
"node-10",
"node-11",
"node-12",
"node-13",
"node-14",
"node-15",
"node-16",
"node-17",
"node-18",
"node-19",
"node-20",
"node-21",
"node-22",
"node-23",
"node-24",
"node-25",
"node-26",
"node-27",
"node-28",
"node-29",
"node-30",
"node-31",
"node-32",
"node-33",
"node-34",
"node-35",
"node-36",
"node-37",
"node-38",
"node-39",
"node-40",
"node-41",
"node-42",
"node-43",
"node-44",
"node-45",
"node-46",
"node-47",
"node-48",
"node-49",
"node-50",
"node-51",
"node-52",
"node-53",
"node-54",
"node-55",
"node-56",
"node-57",
"node-58",
"node-59",
"node-60",
"node-61",
"node-62",
"node-63",
"node-64",
"node-65",
"node-66",
"node-67",
"node-68",
"node-69",
"node-70",
"node-71",
"node-72",
"node-73",
"node-74",
"node-75",
"node-76",
"node-77",
"node-78",
"node-79",
"node-80",
"node-81",
"node-82",
"node-83",
"node-84",
"node-85",
"node-86",
"node-87",
"node-88",
"node-89",
"node-90",
"node-91",
"node-92",
"node-93",
"node-94",
"node-95",
"node-96",
"node-97",
"node-98",
"node-99"
],
"InstanceCount":12,
"ChecksPassing":4,
"ChecksWarning":0,
"ChecksCritical":1,
"ExternalSources":[
""
],
"GatewayConfig":{
"Addresses":[
"clinton.com:39243",
"*.alyson.info:46378",
"fanny.name:29415"
]
}
}
]
- Requested on the 'Upstreams' tab on services show page to show the list of upstream instances.
This is an internal endpoint so there is no public documentation
This tab is nested under the general service show-page and shows if the datacenter is MeshEnabled
, and the service is not a connect-proxy
, ingress-gateway
, or terminating-gateway
, and there is more than one proxy or the service is not an ingress-gateway or not a peer.
(and dc.MeshEnabled item.IsMeshOrigin (or (gt proxies.length 0) (eq item.Service.Kind 'ingress-gateway')) (not item.Service.PeerName))
NOTE: not in initial scope
GET /v1/internal/ui/service-topology/:service
Example response
{
"Protocol":"tcp",
"FilteredByACLs":false,
"TransparentProxy":true,
"Upstreams":[
{
"Name":"service-55",
"Datacenter":"dc1",
"Namespace":"default",
"Partition":"default",
"ChecksPassing":1,
"ChecksWarning":0,
"ChecksCritical":7,
"Source":"routing-config",
"PeerName":"application",
"TransparentProxy":false,
"Intention":{
"Allowed":true,
"HasPermissions":false,
"ExternalSource":"kubernetes",
"HasExact":true,
"DefaultAllow":true
}
},
{
"Kind":"",
"Name":"service-83",
"Datacenter":"dc1",
"Namespace":"protocol-ns-1",
"Partition":"feed-partition",
"ChecksPassing":3,
"ChecksWarning":7,
"ChecksCritical":0,
"Source":"wildcard-intention",
"TransparentProxy":true,
"Intention":{
"Allowed":false,
"HasPermissions":false,
"ExternalSource":"",
"HasExact":false,
"DefaultAllow":true
}
},
{
"Kind":"ingress-gateway",
"Name":"service-51",
"Datacenter":"dc1",
"Namespace":"port-ns-2",
"Partition":"bandwidth-partition",
"ChecksPassing":2,
"ChecksWarning":0,
"ChecksCritical":2,
"Source":"routing-config",
"TransparentProxy":false,
"Intention":{
"Allowed":false,
"HasPermissions":false,
"ExternalSource":"kubernetes",
"HasExact":false,
"DefaultAllow":false
}
}
],
"Downstreams":[
{
"Kind":"ingress-gateway",
"Name":"service-22",
"Datacenter":"dc1",
"Namespace":"default",
"Partition":"default",
"ChecksPassing":1,
"ChecksWarning":0,
"ChecksCritical":0,
"Source":"default-allow",
"TransparentProxy":true,
"Intention":{
"Allowed":false,
"HasPermissions":true,
"ExternalSource":"",
"HasExact":true,
"DefaultAllow":true
}
},
{
"Name":"service-83",
"Datacenter":"dc1",
"Namespace":"protocol-ns-1",
"Partition":"bus-partition",
"ChecksPassing":2,
"ChecksWarning":0,
"ChecksCritical":4,
"Source":"specific-intention",
"TransparentProxy":false,
"Intention":{
"Allowed":false,
"HasPermissions":false,
"ExternalSource":"kubernetes",
"HasExact":true,
"DefaultAllow":true
}
},
{
"Kind":"",
"Name":"service-91",
"Datacenter":"dc1",
"Namespace":"microchip-ns-2",
"Partition":"array-partition",
"ChecksPassing":7,
"ChecksWarning":1,
"ChecksCritical":3,
"Source":"specific-intention",
"TransparentProxy":true,
"Intention":{
"Allowed":true,
"HasPermissions":false,
"ExternalSource":"kubernetes",
"HasExact":true,
"DefaultAllow":true
}
},
{
"Name":"service-8",
"Datacenter":"dc1",
"Namespace":"matrix-ns-3",
"Partition":"sensor-partition",
"ChecksPassing":5,
"ChecksWarning":0,
"ChecksCritical":0,
"Source":"proxy-registration",
"TransparentProxy":true,
"Intention":{
"Allowed":true,
"HasPermissions":false,
"ExternalSource":"kubernetes",
"HasExact":false,
"DefaultAllow":true
}
},
{
"Kind":"ingress-gateway",
"Name":"service-76",
"Datacenter":"dc1",
"Namespace":"pixel-ns-4",
"Partition":"interface-partition",
"ChecksPassing":4,
"ChecksWarning":0,
"ChecksCritical":0,
"Source":"wildcard-intention",
"TransparentProxy":true,
"Intention":{
"Allowed":true,
"HasPermissions":false,
"ExternalSource":"kubernetes",
"HasExact":true,
"DefaultAllow":true
}
}
]
}
- Used for displaying all the information on the topology tab
This endpoint is not included in the public facing HTTP API documentation
GET /v1/connect/intentions
Example response
[
{
"Description":"Consequatur excepturi ut et.",
"SourcePeer":"",
"SourceName":"hard drive-0",
"DestinationName":"circuit",
"SourceNS":"default",
"DestinationNS":"default",
"SourcePartition":"default",
"DestinationPartition":"default",
"SourceType":"externaluri",
"Permissions":[
{
"Action":"deny",
"HTTP":{
"PathPrefix":"/provident/earum/occaecati",
"Methods":[
"HEAD",
"OPTIONS"
],
"Header":[
{
"Name":"X-Capacitor",
"Suffix":"xyz"
},
{
"Name":"X-Driver",
"Invert":true,
"Suffix":"xyz"
},
{
"Name":"X-Matrix",
"Invert":true,
"Prefix":"abc"
}
]
}
},
{
"Action":"deny",
"HTTP":{
"PathRegex":"(w+)s(w+)",
"Methods":[
"HEAD",
"GET",
"PUT",
"PATCH"
],
"Header":[
{
"Name":"X-Monitor",
"Prefix":"abc"
}
]
}
},
{
"Action":"allow",
"HTTP":{
"PathExact":"/molestiae",
"Methods":[
"OPTIONS",
"DELETE",
"POST",
"PATCH"
],
"Header":[
{
"Name":"X-Capacitor",
"Prefix":"abc"
},
{
"Name":"X-Bus",
"Invert":true,
"Present":true
}
]
}
},
{
"Action":"allow",
"HTTP":{
"Methods":[
"DELETE",
"POST"
],
"Header":[
{
"Name":"X-Bandwidth",
"Invert":true,
"Present":true
},
{
"Name":"X-System",
"Exact":"abc"
}
]
}
},
{
"Action":"deny",
"HTTP":{
"PathRegex":"(w+)s(w+)",
"Header":[
{
"Name":"X-Matrix",
"Regex":"[abc]"
},
{
"Name":"X-Panel",
"Invert":true,
"Prefix":"abc"
},
{
"Name":"X-Array",
"Regex":"[abc]"
}
]
}
},
{
"Action":"allow",
"HTTP":{
"Header":[
{
"Name":"X-Interface",
"Invert":true,
"Suffix":"xyz"
},
{
"Name":"X-Bandwidth",
"Prefix":"abc"
}
]
}
}
],
"Precedence":1,
"Meta":{
"external-source":"kubernetes"
},
"CreatedAt":"2018-05-21T16:41:27.977155457Z",
"UpdatedAt":"2018-05-21T16:41:27.977157724Z",
"CreateIndex":11,
"ModifyIndex":11
},
{
"Description":"Libero incidunt sunt.",
"SourcePeer":"billing",
"SourceName":"alarm-1",
"DestinationName":"port",
"SourceNS":"default",
"DestinationNS":"default",
"SourcePartition":"default",
"DestinationPartition":"default",
"SourceType":"externaluri",
"Permissions":[
{
"Action":"deny",
"HTTP":{
"PathPrefix":"/nobis/doloresdd_cambridgeshire_borders.ngdat",
"Methods":[
"POST",
"PUT",
"GET",
"PATCH"
],
"Header":[
{
"Name":"X-Matrix",
"Exact":"abc"
},
{
"Name":"X-Transmitter",
"Invert":true,
"Exact":"abc"
}
]
}
},
{
"Action":"deny",
"HTTP":{
"PathExact":"/quas/reprehenderit/voluptatempayment_european_unit_of_account_17(e.u.a._17).sdw",
"Header":[
{
"Name":"X-Sensor",
"Invert":true,
"Present":true
}
]
}
},
{
"Action":"deny",
"HTTP":{
"PathPrefix":"/ut/neque/error",
"Header":[
{
"Name":"X-Panel",
"Invert":true,
"Suffix":"xyz"
}
]
}
},
{
"Action":"allow",
"HTTP":{
"PathPrefix":"/sequi/etregional_concrete_soap.sid",
"Header":[
{
"Name":"X-Array",
"Invert":true,
"Prefix":"abc"
}
]
}
},
{
"Action":"deny",
"HTTP":{
"PathPrefix":"/provident/impedit/magnam",
"Methods":[
"GET",
"POST",
"PUT",
"HEAD",
"DELETE"
],
"Header":[
{
"Name":"X-Transmitter",
"Prefix":"abc"
}
]
}
},
{
"Action":"deny",
"HTTP":{
"PathRegex":"(w+)s(w+)",
"Header":[
{
"Name":"X-Feed",
"Suffix":"xyz"
},
{
"Name":"X-Matrix",
"Invert":true,
"Suffix":"xyz"
},
{
"Name":"X-Hard-Drive",
"Invert":true,
"Present":true
}
]
}
}
],
"Precedence":2,
"Meta":{
"external-source":"kubernetes"
},
"CreatedAt":"2018-05-21T16:41:27.977155457Z",
"UpdatedAt":"2018-05-21T16:41:27.977157724Z",
"CreateIndex":11,
"ModifyIndex":11
},
{
"Description":"Numquam pariatur ducimus non dolor asperiores unde.",
"SourcePeer":"billing",
"SourceName":"firewall-2",
"DestinationName":"card",
"SourceNS":"default",
"DestinationNS":"default",
"SourcePartition":"default",
"DestinationPartition":"default",
"SourceType":"consul",
"Permissions":[
{
"Action":"allow",
"HTTP":{
"PathExact":"/sit",
"Header":[
{
"Name":"X-Sensor",
"Exact":"abc"
},
{
"Name":"X-Panel",
"Invert":true,
"Present":true
}
]
}
},
{
"Action":"allow",
"HTTP":{
"PathExact":"/id/eum/ratione/iustoshirt.bdoc",
"Methods":[
"GET",
"HEAD",
"DELETE",
"PUT",
"OPTIONS"
],
"Header":[
{
"Name":"X-Matrix",
"Invert":true,
"Regex":"[abc]"
}
]
}
},
{
"Action":"deny",
"HTTP":{
"PathPrefix":"/ea/aut/vel/velautomotive_thx_licensed.mp4s",
"Methods":[
"DELETE",
"POST",
"HEAD"
],
"Header":[
{
"Name":"X-Program",
"Suffix":"xyz"
},
{
"Name":"X-Driver",
"Invert":true,
"Exact":"abc"
},
{
"Name":"X-Array",
"Present":true
}
]
}
},
{
"Action":"allow",
"HTTP":{
"PathRegex":"(w+)s(w+)",
"Header":[
{
"Name":"X-Circuit",
"Regex":"[abc]"
}
]
}
},
{
"Action":"allow",
"HTTP":{
"PathPrefix":"/minima/itaque",
"Methods":[
"HEAD",
"GET"
],
"Header":[
{
"Name":"X-Firewall",
"Prefix":"abc"
},
{
"Name":"X-Bandwidth",
"Invert":true,
"Prefix":"abc"
}
]
}
},
{
"Action":"allow",
"HTTP":{
"PathExact":"/maxime/repudiandae/vel/veritatisrustic_metal_shoes.kon",
"Header":[
{
"Name":"X-System",
"Prefix":"abc"
}
]
}
},
{
"Action":"allow",
"HTTP":{
"PathPrefix":"/eum",
"Methods":[
"POST",
"HEAD"
],
"Header":[
{
"Name":"X-Circuit",
"Invert":true,
"Regex":"[abc]"
}
]
}
}
],
"Precedence":3,
"Meta":{
"external-source":""
},
"CreatedAt":"2018-05-21T16:41:27.977155457Z",
"UpdatedAt":"2018-05-21T16:41:27.977157724Z",
"CreateIndex":11,
"ModifyIndex":11
},
{
"ID":"511d0ebb-27aa-48e4-b01e-8227afa50938",
"Action":"allow",
"Description":"Quae animi sunt et molestiae harum et asperiores nobis repudiandae.",
"SourcePeer":"billing",
"SourceName":"driver-3",
"DestinationName":"card",
"SourceNS":"default",
"DestinationNS":"default",
"SourcePartition":"default",
"DestinationPartition":"default",
"SourceType":"consul",
"Precedence":4,
"Meta":{
"external-source":"kubernetes"
},
"CreatedAt":"2018-05-21T16:41:27.977155457Z",
"UpdatedAt":"2018-05-21T16:41:27.977157724Z",
"CreateIndex":11,
"ModifyIndex":11
},
{
"Description":"Nihil fugiat provident.",
"SourcePeer":"billing",
"SourceName":"pixel-4",
"DestinationName":"microchip",
"SourceNS":"default",
"DestinationNS":"default",
"SourcePartition":"default",
"DestinationPartition":"default",
"SourceType":"consul",
"Permissions":[
{
"Action":"deny",
"HTTP":{
"PathRegex":"(w+)s(w+)",
"Methods":[
"PUT",
"DELETE",
"OPTIONS",
"PATCH"
],
"Header":[
{
"Name":"X-Circuit",
"Regex":"[abc]"
}
]
}
},
{
"Action":"allow",
"HTTP":{
"PathRegex":"(w+)s(w+)",
"Header":[
{
"Name":"X-Interface",
"Exact":"abc"
},
{
"Name":"X-Port",
"Prefix":"abc"
},
{
"Name":"X-Driver",
"Invert":true,
"Suffix":"xyz"
}
]
}
},
{
"Action":"allow",
"HTTP":{
"Methods":[
"PATCH"
],
"Header":[
{
"Name":"X-Capacitor",
"Invert":true,
"Prefix":"abc"
},
{
"Name":"X-Sensor",
"Exact":"abc"
},
{
"Name":"X-Sensor",
"Invert":true,
"Suffix":"xyz"
}
]
}
}
],
"Precedence":5,
"CreatedAt":"2018-05-21T16:41:27.977155457Z",
"UpdatedAt":"2018-05-21T16:41:27.977157724Z",
"CreateIndex":11,
"ModifyIndex":11
}
]
- Used for grabbing existing intention information as part of the process of creating intentions, which you can create via the topology UI.
- Also used for listing intentions on the intentions tab
https://developer.hashicorp.com/consul/api-docs/connect/intentions#list-intentions
PUT /v1/connect/intentions/exact
- Used on the topology tab for creating and updating existing intentions
- Used on edit and create for intentions on the intentions create form that is accessibile from the intentions tab.
https://developer.hashicorp.com/consul/api-docs/connect/intentions#upsert-intention-by-name
DELETE /v1/connect/intentions/exact
- Used for deleting intentions from the intentions tab or via the edit form accessible through the intentions tab.
PUT /v1/connect/intentions/exact
- Used on the topology tab for creating and updating existing intentions
- Used on edit and create for intentions on the intentions create form that is accessibile from the intentions tab.
https://developer.hashicorp.com/consul/api-docs/connect/intentions#upsert-intention-by-name