From 5490e44caa470b47f38f0cff8d86441ba8ab22c7 Mon Sep 17 00:00:00 2001 From: Igor Artamonov Date: Tue, 20 Jul 2021 21:57:15 -0400 Subject: [PATCH] solution: docs for monitoring with Prometheus --- docs/06-monitoring.adoc | 20 +++++++++ docs/reference-configuration.adoc | 70 ++++++++++++++++++++++++++++++- 2 files changed, 89 insertions(+), 1 deletion(-) diff --git a/docs/06-monitoring.adoc b/docs/06-monitoring.adoc index 9ef6d8b1..92612fa3 100644 --- a/docs/06-monitoring.adoc +++ b/docs/06-monitoring.adoc @@ -71,4 +71,24 @@ The access log contains the JSON lines similar to: ** `id` request id provided in the original request ** `payloadSizeBytes` size of the original _individual_ request (for JSON RPC it's size of the `params` value) +== Prometheus Metrics +By default, Dshackle provides Prometheus metrics on `http://127.0.0.1:8081/metrics`. + +To configure the metrics use: + +[source,yaml] +---- +monitoring: + enabled: true + jvm: false + extended: false + prometheus: + enabled: true + bind: 192.168.0.1 + port: 8000 + path: /status/prometheus +---- + +Where `jvm` options enabled monitoring of the JVM internals, such as memory, GC, threads, etc. +And `extended` enables additional metrics for query selectors, etc. \ No newline at end of file diff --git a/docs/reference-configuration.adoc b/docs/reference-configuration.adoc index d8d615c9..e714de30 100644 --- a/docs/reference-configuration.adoc +++ b/docs/reference-configuration.adoc @@ -21,6 +21,16 @@ tls: require: true ca: "/path/ca.dshackle.test.crt" +monitoring: + enabled: true + jvm: false + extended: false + prometheus: + enabled: true + bind: 127.0.0.1 + port: 8081 + path: /metrics + cache: redis: enabled: true @@ -149,6 +159,11 @@ cluster: | Setup TLS configuration for the gRPC server. See <> section +| `monitoring` +| +| Setup Prometheus monitoring. +See <> section + | `proxy` | | Setup HTTP proxy that emulates all standard JSON RPC requests. @@ -205,7 +220,7 @@ a| `true` if any value is set | `server.key` | -| Path to a private key to the certificate. The key _MUST BE_ in PKCS 8 format +| Path to a private key to the certificate.The key _MUST BE_ in PKCS 8 format | `client.require` | @@ -217,6 +232,59 @@ a| `true` if any value is set |=== +[#monitoring] +== Monitoring + +Configure Prometheus monitoring + +[source,yaml] +---- +monitoring: + enabled: true + jvm: false + extended: false + prometheus: + enabled: true + bind: 127.0.0.1 + port: 8081 + path: /metrics +---- + +[cols="2a,2a,5"] +|=== +| Option | Default Value | Description + +| `enabled` +| `true` +| Enable/Disable monitoring endpoint + +| `jvm` +| `false` +| Enable/Disable JVM metrics (threads, GC, memory, etc) + +| `extended` +| `false` +| Enable/Disable additional metrics (query selectors, etc) + +| `prometheus.enabled` +| `true` +| Enable/Disable monitoring endpoint. +_Reserved for future use_, in case of multiple different types of endpoints. + +| `prometheus.bind` +| `127.0.0.1` +| Host to bind the server + +| `prometheus.port` +| `8081` +| Port to bind the server + +| `prometheus.path` +| `/metrics` +| HTTP path to bind the server + +|=== + [#proxy] == Proxy config