Projects STRLCPY graphql-engine Files
🤬
80 lines | ISO-8859-1 | 4 KB

Hasura Enterprise Observability Demo

An all-in-one observability demo for Hasura GraphQL Engine Enterprise Edition with Prometheus, Jaeger, Alert-manager, Node Exporter, Loki Logs, OpenTelemetry and Grafana dashboards.

Get Started

  • Copy dotenv to .env and configure secrets and EE License Key.
  • Try docker-compose locally with docker-compose up -d, or run the Docker Swarm stack with scripts that are in the util folder.

The default configuration enables the Native Prometheus exporter. If you want to push metrics to 3rd-party services that support OpenTelemetry, first disable the metrics API and configure the OpenTelemetry metrics endpoint to the otel-collector service. Browse the console -> Settings -> OpenTelemetry Exporter and configure the metrics endpoint.

HGE_ENABLED_APIS=metadata,graphql,config

OpenTelemetry Exporter

Components

Here's a list of all the services that are created:

ServicePortDescriptionNotes
HGE:8080Hasura GraphQL Engine
Postgres:5432Postgres Database Container
Prometheus:9090Data Aggregator
Alert Manager:9093Adds Alerting for Prometheus Checks
Grafana:3000UI To Show Prometheus DataUsername: admin, Password: HGEMonitoring!
Node Exporter:9100Data Collector for Host Stats
Blackbox Exporter:9115Data Collector for Ping & Uptime
Redis:6379Latest Redis Cache Container
Jaeger:4318Jaeger OTLP HTTP
Jaeger:4317Jaeger OTLP gRPC
Jaeger:4002Jaeger Web UI
Loki:3100Loki Logging Collector
Promtail Pushes logs to Loki

Grafana Dashboards

Dashboard templates are collected in the dashboards/hasura folder. You can import those files to your config folders where the Grafana service is configured, or import them directly on the Grafana web UI.

Example

The default GraphQL Engine service uses migration and metadata configuration in the examples/hasura folder to invoke mock requests for metrics demonstration.

FAQs

How can I enable metrics in the the Source Health panel

Currently, only Postgres supports source health check metrics.

To enable Source Health check metrics you need to configure the health check metadata for each data source.

How can I find the Trace ID of GraphQL Requests

You can find the Trace ID in the X-B3-TraceId request header.

Screenshots

Grafana Dashboards

System Monitoring

Hasura Overview

Hasura Health

Hasura HTTP GraphQL Metrics

Hasura Subscriptions

Hasura Events

Hasura Logs & Traces

Alerts

Hasura Alerts

Please wait...
Page is in error, reload to recover