Skip to content

Integrations

A built-in integration is a recipe for one technology, such as PostgreSQL or Nginx. It gives you an OpenTelemetry Collector config that collects the right metrics and logs, and FuseScope adds matching dashboards when you connect it.

Use this page when you want to monitor a database, web server or AWS service that has a built-in integration, or want to know how integrations work in the app.

Integration Metrics Logs Dashboards
ClickHouse Server Prometheus endpoint Server log file Clickhouse Overview
MongoDB mongodb receiver Server log file Mongo overview
Nginx None Access and error log files None
PostgreSQL postgresql receiver Server log file Postgres overview
Redis redis receiver Server log file Redis overview
AWS RDS for MySQL CloudWatch and mysql receiver CloudWatch Logs AWS RDS MySQL, MySQL
AWS RDS for PostgreSQL CloudWatch and postgresql receiver CloudWatch Logs AWS RDS Postgres, Postgres overview
AWS ElastiCache for Redis CloudWatch and redis receiver CloudWatch Logs AWS ElastiCache Redis

No integration ships log pipelines or alert rules. Log parsing happens in the collector config itself, with filelog operators. To parse further, or to parse the raw AWS logs, add a log pipeline. To get alerted, create alert rules on the collected data.

You run the collector. FuseScope does not reach into your systems.

  1. Run a collector next to the service. Use the upstream otelcol-contrib distribution, version v0.88.0 or newer; the examples use 0.139.0. See Collector in Docker or Collector on a VM.
  2. Add the integration’s config files. Each integration page has one file for metrics and one for logs. They export to FuseScope over OTLP gRPC.
  3. Connect the integration in FuseScope. This adds its dashboards and turns on the connection test.
  1. Open Integrations in the sidebar and click the integration. Use Search for an integration… to filter the list.
  2. The detail page has three tabs:
    • Overview: what the integration collects.
    • Configure: the setup steps, the same as on these pages.
    • Data Collected: every log attribute and metric, with type, unit and description.
  3. Click Connect <name> in the header, for example Connect PostgreSQL.
  4. In the Connect <name> dialog, click Show Configuration Steps to open the Configure tab, or I have already configured once the collector runs.

I have already configured installs the integration. Its dashboards appear in Dashboards, and the header button becomes Test Connection. A badge shows the status:

Status Meaning
Listening for data… Installed, nothing received yet.
This integration is working properly FuseScope has received matching data.
This integration has not received data in a while :/ Nothing received for 7 days.

Test Connection opens a dialog with where the last data came from and when. FuseScope counts two kinds of data:

  • Logs that carry the attribute source with the integration’s value, such as source = postgres. Every config on these pages sets it. Keep it.
  • Metrics whose names are listed on the Data Collected tab.

To remove an integration, click Remove from FuseScope at the bottom of its page, then Remove Integration. This deletes its dashboards and stops the connection test. It does not change your collector: remove the config there to stop sending data.

Every config on these pages ends with the same exporter:

exporters:
otlp/fusescope:
endpoint: ${env:OTLP_DESTINATION_ENDPOINT}
tls:
insecure: true

Set OTLP_DESTINATION_ENDPOINT to the FuseScope collector’s gRPC address, port 4317:

Where the collector runs Value
Same Kubernetes cluster fusescope-otel-collector.fusescope.svc.cluster.local:4317
Outside the cluster fusescope-collector.example.com:4317, see From outside the cluster

insecure: true sends plain text. Set it to false when the endpoint uses TLS. Self-hosted FuseScope needs no ingestion key or token header.

The collector accepts several --config flags and merges the files. Add the integration files next to your main config.

Terminal window
docker run -d --name otelcol \
-e OTLP_DESTINATION_ENDPOINT=fusescope-collector.example.com:4317 \
-e POSTGRESQL_ENDPOINT=db.internal:5432 \
-e POSTGRESQL_USERNAME=monitoring \
-e POSTGRESQL_PASSWORD='<password>' \
-v "$PWD/postgres-metrics.yaml:/etc/otelcol-contrib/postgres-metrics.yaml:ro" \
otel/opentelemetry-collector-contrib:0.139.0 \
--config /etc/otelcol-contrib/postgres-metrics.yaml

To read log files, also mount the log directory read-only, for example -v /var/log/postgresql:/var/log/postgresql:ro.

The integrations cover a handful of common services. The collector-contrib distribution has receivers for many more, such as Kafka, RabbitMQ, Elasticsearch, Apache and IIS. Configure the receiver, export with the exporter above, and build a dashboard on the metrics. Services that expose Prometheus metrics work with the Prometheus receiver. For log files, see Log files.