Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In our November 2024 release we have added an option to enable Java Agent to monitor the dashboard to collect metrics, traces and logs for observability.

You can find info about enabling this feature by checking out our November 2024 release notes - November 2024 - Dashboard Release Notes

Example:

This configuration bellow will do the following:

...

Code Block
receivers:
  otlp: # Defines the OTLP receiver to accept telemetry data (traces/metrics)
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318
processors:
  batch/traces:
    timeout: 1s 
    send_batch_size: 50  
  batch/metrics:
    timeout: 1s
    send_batch_size: 50  
   

exporters:
  prometheus: #
Defines an exporter for Prometheus to expose telemetry data
    endpoint: 0.0.0.0:8889 # The network address and port where Prometheus can scrape metrics
  zipkin:
    endpoint: "http://zipkin:9411/api/v2/spans" # Traces are exported to Zipkin at defined url
service:
  pipelines:    
    metrics:  
      receivers: [otlp] 
      processors: [batch/metrics] 
      exporters: [prometheus] 
    traces:  
      receivers: [otlp]
      processors: [batch/traces]
      exporters: [zipkin]    

...

Code Block
global:
  scrape_interval:     15s # Default time interval between scrapes for all jobs unless overridden
  evaluation_interval: 15s # Default time interval to evaluate alerting and recording rules 

scrape_configs: # List of scrape configurations
defining how Prometheus should scrape metrics from different targets
  - job_name: 'example'
    metrics_path: '/metrics' # Endpoint where metrics are exposed for the target
    scrape_interval: 5s # Override the global `scrape_interval` to scrape this job every 5 seconds
    static_configs:
      - targets: ['otel-collector:8889'] # The address of the target to scrape

...

Code Block
services:
  dashboard:
    image: ${LATEST_DASHBOARD_IMAGE}
    ports:
      - 8226:8226
    environment:
      PI_DB_HOST: database
      PI_DB_PASSWORD: password
      PI_DB_USERNAME: root
      PI_DB_SCHEMA_NAME: dashboard
      PI_DB_PORT: 3306
      PI_EXTERNAL_DB: "true"
      PI_LICENCE: ${LICENCE_KEY}
      PI_TOMCAT_MONITORING_ENABLE_JAVA_AGENTENABLED: "true"
      PI_TOMCAT_MONITORING_OTLP_EXPORTER_ENDPOINT: "http://otel-collector:4318"
      PI_TOMCAT_MONITORING_OTLP_EXPORTER_PROTOCOL: "http/protobuf"
      PI_TOMCAT_MONITORING_SERVICE_NAME: "pi-dashboard"
      PI_TOMCAT_PORT: 8226
    healthcheck:
      test: [ "CMD", "/bin/bash", "/var/panintelligence/tomcat_healthcheck.sh" ]
      interval: 10s
      start_period: 60s
      retries: 3
  database:
    image: mariadb:10.9.4
    environment:
      MARIADB_DATABASE: dashboard
      MARIADB_ROOT_PASSWORD: password
      LANG: C.UTF-8
    command: --lower_case_table_names=1 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    restart: always
    ports:
      - "3306:3306"
  otel-collector:
    image: otel/opentelemetry-collector
    container_name: otel-collector
    command: [ "--config=/etc/config.yml" ]
    volumes:
      - /path_to_config_files/config.yml:/etc/config.yml # Mounts the local collector configuration file into the container at the specified path
    ports:
      - "4317:4317" # OTLP gRPC protocol for receiving telemetry data
      - "4318:4318" # MOTLP HTTP protocol for receiving telemetry data
      - "8889:8889" # Maps port 8889 for Prometheus scraping metrics from the collector
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    ports:
      - "9090:9090" # Maps port 9090 for accessing the Prometheus web interface
    volumes:
      - /path_to_prometheus_config/prometheus.yml:/etc/prometheus/prometheus.yml # Mounts the local Prometheus configuration file into the container
  zipkin:
    image: openzipkin/zipkin:2.23
    container_name: zipkin
    ports:
      - "9411:9411"

...