91df06098c
Since generated envoy clusters all are named using (mostly) SNI syntax we can have envoy read the various fields out of that structure and emit it as stats labels to the various telemetry backends. I changed the delimiter for the 'customization hash' from ':' to '~' because ':' is always reencoded by envoy as '_' when generating metrics keys.
123 lines
2.9 KiB
Plaintext
123 lines
2.9 KiB
Plaintext
{
|
|
"admin": {
|
|
"access_log_path": "/dev/null",
|
|
"address": {
|
|
"socket_address": {
|
|
"address": "127.0.0.1",
|
|
"port_value": 19000
|
|
}
|
|
}
|
|
},
|
|
"node": {
|
|
"cluster": "test-proxy",
|
|
"id": "test-proxy"
|
|
},
|
|
"static_resources": {
|
|
"clusters": [
|
|
{
|
|
"name": "local_agent",
|
|
"connect_timeout": "1s",
|
|
"type": "STATIC",
|
|
"http2_protocol_options": {},
|
|
"hosts": [
|
|
{
|
|
"socket_address": {
|
|
"address": "127.0.0.1",
|
|
"port_value": 8502
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "fake_cluster_1"
|
|
},
|
|
{
|
|
"name": "fake_cluster_2"
|
|
}
|
|
],
|
|
"listeners": [
|
|
{
|
|
"name": "fake_listener_1"
|
|
},
|
|
{
|
|
"name": "fake_listener_2"
|
|
}
|
|
]
|
|
},
|
|
"stats_sinks": [
|
|
{
|
|
"name": "fake_sink_1"
|
|
},
|
|
{
|
|
"name": "fake_sink_2"
|
|
}
|
|
],
|
|
"stats_config": {
|
|
"stats_tags": [
|
|
{
|
|
"regex": "^cluster\\.((?:([^.]+)~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)",
|
|
"tag_name": "consul.custom_hash"
|
|
},
|
|
{
|
|
"regex": "^cluster\\.((?:[^.]+~)?(?:([^.]+)\\.)?[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)",
|
|
"tag_name": "consul.service_subset"
|
|
},
|
|
{
|
|
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?([^.]+)\\.[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)",
|
|
"tag_name": "consul.service"
|
|
},
|
|
{
|
|
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.([^.]+)\\.[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)",
|
|
"tag_name": "consul.namespace"
|
|
},
|
|
{
|
|
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.([^.]+)\\.[^.]+\\.[^.]+\\.consul\\.)",
|
|
"tag_name": "consul.datacenter"
|
|
},
|
|
{
|
|
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.([^.]+)\\.[^.]+\\.consul\\.)",
|
|
"tag_name": "consul.routing_type"
|
|
},
|
|
{
|
|
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.([^.]+)\\.consul\\.)",
|
|
"tag_name": "consul.trust_domain"
|
|
},
|
|
{
|
|
"regex": "^cluster\\.(((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+)\\.[^.]+\\.[^.]+\\.consul\\.)",
|
|
"tag_name": "consul.target"
|
|
},
|
|
{
|
|
"regex": "^cluster\\.(((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.[^.]+\\.[^.]+)\\.consul\\.)",
|
|
"tag_name": "consul.full_target"
|
|
},
|
|
{
|
|
"tag_name": "local_cluster",
|
|
"fixed_value": "test-proxy"
|
|
}
|
|
],
|
|
"use_all_default_tags": true
|
|
},
|
|
"dynamic_resources": {
|
|
"lds_config": {
|
|
"ads": {}
|
|
},
|
|
"cds_config": {
|
|
"ads": {}
|
|
},
|
|
"ads_config": {
|
|
"api_type": "GRPC",
|
|
"grpc_services": {
|
|
"initial_metadata": [
|
|
{
|
|
"key": "x-consul-token",
|
|
"value": ""
|
|
}
|
|
],
|
|
"envoy_grpc": {
|
|
"cluster_name": "local_agent"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|