From d893c9261e95621073a7ee44044b99777bd5081c Mon Sep 17 00:00:00 2001 From: Krastin Krastev Date: Mon, 10 Jan 2022 17:37:38 +0100 Subject: [PATCH] adding JSON examples to /docs/connect/observability/ui-visualization --- .../observability/ui-visualization.mdx | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/website/content/docs/connect/observability/ui-visualization.mdx b/website/content/docs/connect/observability/ui-visualization.mdx index e21631a482..9a9056ff07 100644 --- a/website/content/docs/connect/observability/ui-visualization.mdx +++ b/website/content/docs/connect/observability/ui-visualization.mdx @@ -66,6 +66,9 @@ service named `prometheus-server` so each Consul agent can reach it on A full configuration to enable Prometheus is given below. + + + ```hcl ui_config { enabled = true @@ -76,6 +79,28 @@ ui_config { } ``` + + + +```json +{ + "ui_config": [ + { + "enabled": true, + "metrics_provider": "prometheus", + "metrics_proxy": [ + { + "base_url": "http://prometheus-server" + } + ] + } + ] +} +``` + + + + Similarly, to configure the UI on Kubernetes, use this [reference](/docs/k8s/connect/observability/metrics). ## Configuring Dashboard URLs @@ -114,6 +139,31 @@ ui_config { without horizontal scrolling in the example above however this needs to be a normal single-line string value in an HCL configuration file. + + + +```json +{ + "ui_config": [ + { + "dashboard_url_templates": [ + { + "service": "https://grafana.example.com/d/lDlaj-NGz/ + service-overview?orgId=1\u0026var-service={{Service.Name}}\u0026 + var-namespace={{Service.Namespace}}\u0026 + var-partition={{Service.Partition}}\u0026var-dc={{Datacenter}}" + } + ], + "enabled": true + } + ] +} +``` + +-> **Note**: the URL is wrapped over multiple lines to make it easier to read +without horizontal scrolling in the example above however this needs to be a +normal single-line string value in a JSON configuration file. + @@ -235,6 +285,9 @@ visible to Consul operators in the configuration file while UI users can query the metrics they need without separately obtaining a token for that provider or having a token exposed to them that they might be able to use elsewhere. + + + ```hcl ui_config { enabled = true @@ -251,6 +304,34 @@ ui_config { } ``` + + + +```json +{ + "ui_config": [ + { + "enabled": true, + "metrics_provider": "example-apm", + "metrics_proxy": [ + { + "add_headers": [ + { + "name": "Authorization", + "value": "Bearer \u003ctoken\u003e" + } + ], + "base_url": "https://example-apm.com/api/v1/metrics" + } + ] + } + ] +} +``` + + + + ## Custom Metrics Providers Consul 1.9.0 includes a built-in provider for fetching metrics from @@ -484,6 +565,9 @@ named `example-provider`, which is defined in have been specified in the call to `consul.registerMetricsProvider` as in the code listing in the last section. + + + ```hcl ui_config { enabled = true @@ -497,6 +581,23 @@ ui_config { } ``` + + + +```json +{ + "ui_config": { + "enabled": true, + "metrics_provider": "example-provider", + "metrics_provide_files": ["/usr/local/bin/example-metrics-provider.js"], + "metrics_provider_options_json": "{\"foo\":\"bar\"}" + } +} +``` + + + + More than one JavaScript file may be specified in [`metrics_provider_files`](/docs/agent/options#ui_config_metrics_provider_files) and all we be served allowing flexibility if needed to include dependencies.