Cách push metrics lên Bizfly Cloud Observability

Bizfly Cloud Observability dùng service Mimir để quản lý metrics, service này tương thích được với Prometheus Remote Write protocol nên bạn có thể push metrics bằng bất cứ agent nào có hỗ trợ Prometheus Remote Write protocol, chẳng hạn như Grafana Alloy, vector, Fluentbit…

Dưới đây là các bước và ví dụ cấu hình của một số agent để thu thập metrics từ 127.0.0.1:8000/metrics rồi push metrics lên Bizfly Cloud Observability.

Bước 1. Chuẩn bị

Để push logs lên service Mimir của Bizfly Cloud Observability bạn cần có endpoint và bearer token để authen khi push metrics.

Bước 2. Cấu hình agent push metrics

Ví dụ một số agent

Grafana agent(Flow mode)

Install

Tham khảo các cách install Grafana agent tại đây

Cấu hình

Tạo file config.river và paste nội dung config sau:

  prometheus.scrape "log_exporter" {

    targets = [{
      __address__ = "127.0.0.1:8000",
    }]


    forward_to = [prometheus.remote_write.mimir.receiver]
  }


  prometheus.remote_write "mimir" {
  endpoint {
      url = "https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn/api/v1/push"
      bearer_token = "YOUR_METRICS_TOKEN"
      }
  }

Run (Standalone)

Grafana-agent run config.river
Grafana Alloy

Install

Tham khảo các cách install Grafana Alloy tại đây

Cấu hình

Tạo file config.alloy và paste nội dung config sau:

  prometheus.scrape "log_exporter" {

    targets = [{
      __address__ = "127.0.0.1:8000",
    }]


    forward_to = [prometheus.remote_write.mimir.receiver]
  }


  prometheus.remote_write "mimir" {
  endpoint {
      url = "https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn/api/v1/push"
      bearer_token = "YOUR_METRICS_TOKEN"
      }
  }

Run (Standalone)

alloy run config.alloy
Vector

Cấu hình

Tạo file vector.yaml và paste nội dung config sau:

  sources:
      source_prometheus_scape:
          type: prometheus_scrape
          endpoints:
              - http://127.0.0.1:8000/metrics
  sinks:
      prometheus_sink:
          type: prometheus_remote_write
          inputs:
              - source_prometheus_scape
          endpoint: https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn/api/v1/push
          auth:
          strategy: "bearer"
          token: "YOUR_METRICS_TOKEN"
          healthcheck:
          enabled: false

Run

  docker run -d -v $PWD/vector.yaml:/etc/vector/vector.yaml:ro  -v /log/gdnsd.log:/log/gdnsd.log -p 8686:8686 --name vector --network host timberio/vector:0.39.0-debian
Fluentbit

Cấu hình

Tạo file config.conf và paste nội dung config sau:

  [INPUT]
      name prometheus_scrape
      host 127.0.0.1
      port 8000
      tag node_metrics 
      metrics_path /metrics
      scrape_interval 2
  [OUTPUT]
      Name                 prometheus_remote_write
      Match                node_metrics
      Host                 obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn
      Port                 443
      Uri                  /api/v1/push
      header Authorization Bearer YOUR_METRICS_TOKEN
      Log_response_payload True
      Tls                  On
      Tls.verify           On
      # add user-defined labels
      add_label            app fluent-bit
      add_label            color blue

Run

  docker run -d -v $YOUR_FOLDER/:/config -v /log/gdnsd.log:/log/gdnsd.log --name fluentbit --network host cr.fluentbit.io/fluent/fluent-bit --config=/config/fluentbit-config.conf

Bước 3. Xem kết quả trên Grafana dashboard

Truy cập dashboard rồi chọn Explore, nếu chưa biết cách truy cập dashboard bạn có thể tham khảo hướng dẫn này

Chọn Mimir datasource

Nhập metric muốn filter rồi click Run query

Kết quả đã thấy metrics được push lên mimir