diff --git a/integrations/rabbitmq/rabbitmq-monitoring/CHANGELOG.md b/integrations/rabbitmq/rabbitmq-monitoring/CHANGELOG.md index 18e7edef..63c8c348 100644 --- a/integrations/rabbitmq/rabbitmq-monitoring/CHANGELOG.md +++ b/integrations/rabbitmq/rabbitmq-monitoring/CHANGELOG.md @@ -7,7 +7,13 @@ to [Semantic Versioning][semver]. ## Unreleased -- N/A +- Remove linux and darwin tags in integration yaml +- Revise text labels and prompts in configuration modal +- Add summary for success screen in integration yaml file +- Restore separate Alerts section in README +- Add and revise setup steps and options in README +- Revise reference documentation list in README + ## [ 20220421.0.0 ] - 2022-04-21 diff --git a/integrations/rabbitmq/rabbitmq-monitoring/README.md b/integrations/rabbitmq/rabbitmq-monitoring/README.md index cf843a40..af261600 100644 --- a/integrations/rabbitmq/rabbitmq-monitoring/README.md +++ b/integrations/rabbitmq/rabbitmq-monitoring/README.md @@ -2,13 +2,11 @@ -The [RabbitMQ] monitoring integration provides metrics from a RabbitMQ cluster running the [`rabbitmq_prometheus` Rabbitmq plugin](https://www.rabbitmq.com/prometheus.html#installation). - -[RabbitMQ]: https://www.rabbitmq.com +The RabbitMQ Monitoring integration collects metrics from RabbitMQ clusters that run the [`rabbitmq_prometheus` plugin][rabbit-prom-plugin]. -This integration includes the following resources: +This integration includes the following Sensu resources: * `rabbitmq-monitoring` [check] * `sensu/http-checks:0.7.0` [asset] @@ -21,46 +19,71 @@ This integration includes the following resources: -There are no compatible dashboards for this integration. +The RabbitMQ Metrics integration does not have compatible dashboards. ## Setup -1. **[OPTIONAL] Configure custom request headers** +1. Get the RabbitMQ target URL. You will need these target URL elements to install this integration: + + - Protocol (`http` or `https`) + - Host (hostname, IP address, or domain name) + - Port number (default is `15692`) + - Path (`/metrics`) + +1. Decide which Sensu agents should execute the `rabbitmq-monitoring` check. You will need the agent [subscription] names when you install this integration. - To add custom request headers, install this integration, then modify the resulting Sensu Check resource with one or more `--header` flags. +1. If you want to use a Sensu [pipeline] to process RabbitMQ Monitoring integration data, you will need the pipeline name when you install this integration. - Example: +1. **Optional** Configure custom request headers. + + To use custom request headers, install this integration. Then, update the `rabbitmq-monitoring` check to add one or more `--header` flags in the check's `command` attribute. + +
Example: Custom request header configuration ```yaml spec: command: >- http-get --timeout 10 - --url "http://127.0.0.1:15692/ + --url "http://127.0.0.1:15692/" --header "Content-Type: text/plain" --header "X-Example-Header: helloworld" ``` +
+
+ ## Plugins +The RabbitMQ Monitoring integration uses the following Sensu [plugins]: + - [sensu/http-checks][http-checks-bonsai] ([GitHub][http-checks-github]) -## Metrics & Events +## Alerts + + + +The RabbitMQ Monitoring integration does not produce any events that should be processed by an alert or incident management pipeline. + +## Metrics -This integration collects a wide range of [metrics], depending on the configuration of your Rabbitmq cluster. For a full list, see the [Rabbitmq metrics documentation](https://www.rabbitmq.com/monitoring.html#rabbitmq-metrics). +The RabbitMQ Monitoring integration collects many [metrics], depending on the RabbitMQ cluster configuration. For a complete list of metrics, read [RabbitMQ Metrics]. -# Reference Documentation +## Reference Documentation -1. This integration uses [Sensu Tokens][tokens] for variable substitution. +* [Token substitution] (Sensu documentation): the RabbitMQ Monitoring integration supports Sensu tokens for variable substitution with data from Sensu entities +* [Monitoring with Prometheus & Grafana][rabbit-prom-plugin] (RabbitMQ documentation) +* [RabbitMQ Metrics] (RabbitMQ documentation) + [entity]: https://docs.sensu.io/sensu-go/latest/observability-pipeline/observe-entities/entities/ @@ -76,7 +99,9 @@ This integration collects a wide range of [metrics], depending on the configurat [pipeline]: https://docs.sensu.io/sensu-go/latest/observability-pipeline/observe-process/pipelines/ [secret]: https://docs.sensu.io/sensu-go/latest/operations/manage-secrets/secrets/ [secrets]: https://docs.sensu.io/sensu-go/latest/operations/manage-secrets/secrets/ -[tokens]: https://docs.sensu.io/sensu-go/latest/observability-pipeline/observe-schedule/tokens/ +[Token substitution]: https://docs.sensu.io/sensu-go/latest/observability-pipeline/observe-schedule/tokens/ [sensu-plus]: https://sensu.io/features/analytics [http-checks-bonsai]: https://bonsai.sensu.io/assets/sensu/http-checks [http-checks-github]: https://github.com/sensu/http-checks +[RabbitMQ Metrics]: https://www.rabbitmq.com/monitoring.html#rabbitmq-metrics +[rabbit-prom-plugin]: https://www.rabbitmq.com/prometheus.html diff --git a/integrations/rabbitmq/rabbitmq-monitoring/sensu-integration.yaml b/integrations/rabbitmq/rabbitmq-monitoring/sensu-integration.yaml index 06b8f9f1..40d08508 100644 --- a/integrations/rabbitmq/rabbitmq-monitoring/sensu-integration.yaml +++ b/integrations/rabbitmq/rabbitmq-monitoring/sensu-integration.yaml @@ -7,8 +7,8 @@ metadata: spec: class: community provider: monitoring - display_name: RabbitMQ monitoring - short_description: Collect metrics from rabbitmq_prometheus rabbitmq plugin + display_name: RabbitMQ Monitoring + short_description: Collect metrics from the rabbitmq_prometheus plugin supported_platforms: - darwin - linux @@ -16,8 +16,6 @@ spec: - rabbitmq - metrics - prometheus - - linux - - darwin contributors: - "@sensu" - "@thoward" @@ -25,25 +23,25 @@ spec: - "@jspaleta" prompts: - type: section - title: RabbitMQ Prometheus Metrics HTTP Endpoint Configuration + title: RabbitMQ HTTP Endpoint Configuration - type: markdown body: | - Configure HTTP Endpoint monitoring with the following parameters: + Provide these configuration parameters for the `rabbitmq_prometheus` HTTP endpoint: - * **URL**: the target URL to monitor (e.g. `https://api.mycompany.com:443/health`) - * **Protocol**: select http or https request - * **Host**: provide a hostname, IP address, or domain name - * **Port**: provide the port to check (e.g. `80` for HTTP, `443` for HTTPS) - * **Path**: provide the URL path to check (e.g. `/healthz`) - * **Interval**: how often to monitor the HTTP endpoint (in seconds) + * Target URL to collect metrics from, such as `https://127.0.0.1:15692/metrics`, separated into: + * Protocol (`http` or `https`) + * Host (hostname, IP address, or domain name) + * Port number (`15692`) + * Path (`/metrics`) + * Interval for collecting metrics from the endpoint (in seconds) - type: question name: protocol required: true input: type: string - title: HTTP Endpoint Protocol + title: Target URL protocol description: >- - Provide the HTTP endpoint protocol (i.e. "http" or "https"). + Select the protocol for the `rabbitmq_prometheus` target URL (`http` or `https`) enum: - http - https @@ -53,27 +51,27 @@ spec: required: true input: type: string - title: HTTP Endpoint Host + title: Target URL host description: >- - Provide the HTTP endpoint host (e.g. "127.0.0.1") + Enter the host for the `rabbitmq_prometheus` target URL default: 127.0.0.1 - type: question name: port required: true input: type: integer - title: HTTP Endpoint Port + title: Target URL port description: >- - Provide the HTTP endpoint port (e.g. 15692 is the default for the rabbitmq_promethus plugin) + Enter the port for the `rabbitmq_prometheus` target URL (`rabbitmq_prometheus` default is `15692`) default: 15692 - type: question name: path required: true input: type: string - title: HTTP Endpoint Path + title: Target URL path description: >- - Provide the HTTP endpoint path (e.g. "/metrics"; NOTE: this configuration MUST begin with a "/") + Enter the path for the `rabbitmq_prometheus` target URL (MUST begin with `/`) default: "/metrics" - type: question name: interval @@ -81,49 +79,47 @@ spec: type: integer title: Interval description: >- - Configure the HTTP endpoint monitoring interval, in seconds (60 = one minute, 300 = five minutes, 600 = 10 minutes, etc) + Specify the metrics collection interval, in seconds (60 = 1 minute, 300 = 5 minutes, 600 = 10 minutes) default: 30 - - type: question - name: labels - input: - type: object - title: Labels - description: Key/value metadata - format: io.sensu.meta.label - additionalProperties: - type: string - type: section - title: Configure Sensu Subscriptions + title: Check Labels and Sensu Subscriptions - type: markdown body: | - Configure which Sensu Agent subscriptions this check should be run on. - - E.G. A subscription that maps to the hosts that are running RabbitMQ server with the rabbitmq_prometheus plugin enabled. + Specify the subscriptions for Sensu agents that should execute the `rabbitmq-monitoring` check and the metadata labels to add to the check definition. - type: question name: subscriptions input: type: array items: type: string - title: Subscriptions (Origins) + title: Subscriptions ref: core/v2/entity/subscriptions default: - rabbitmq + - type: question + name: labels + input: + type: object + title: Check labels + description: Add metadata labels for the `rabbitmq-monitoring` check + format: io.sensu.meta.label + additionalProperties: + type: string - type: section title: Pipeline Configuration - type: markdown body: | - Configure one or more [pipelines] for processing RabbitMQ Prometheus metrics. + Name the [pipelines] you want to use to process RabbitMQ Monitoring integration data. - [pipelines]: https://docs.sensu.io/sensu-go/latest/observability-pipeline/ + [pipelines]: https://docs.sensu.io/sensu-go/latest/observability-pipeline/observe-process/pipelines/ - type: question name: metrics_pipeline required: false input: type: string - title: Metrics Pipeline + title: Metrics pipeline name description: >- - How do you want to process metrics collected by this integration? + Which pipeline do you want to use to process the metrics this integration collects? ref: core/v2/pipeline/metadata/name refFilter: .labels.provider == "metrics" resource_patches: @@ -158,4 +154,11 @@ spec: api_version: core/v2 type: Pipeline name: "[[metrics_pipeline]]" - + post_install: + - type: section + title: Success + - type: markdown + body: | + You enabled the RabbitMQ Monitoring integration for `[[protocol]]://[[host]]:[[port]][[path]]`. + + The `rabbitmq-monitoring` check will run for all Sensu agents with these subscriptions: [[subscriptions]]. \ No newline at end of file