Cách push traces lên Bizfly Cloud Observability
Bizfly Cloud Observability dùng service Tempo để quản lý traces bạn có thể push traces bằng các agent hỗ trợ OpenTelemetry Protocol (OTLP), chẳng hạn như Grafana Alloy, Opentelemetry collector
Dưới đây là các bước và ví dụ cấu hình của một số agent để thu thập traces từ 1 application đã tích hợp opentelemetry (có thể thu thập thêm cả metrics, logs) nếu application có tạo ra.
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 logs.
- Bạn có thể có token bằng cách tạo hoặc reset token.
- Để lấy endpoint cho việc push logs, bạn có thể tham khảo hướng dẫn sau. Ngoài ra bạn cũng cần có sẵn 1 application đã tích hợp opentelemetry để tạo ra các traces.
Bước 2. Cấu hình agent push traces
Ví dụ một số agent
Opentelemetry collector
Cấu hình
Tạo file config.yaml và paste nội dung config sau:
receivers:
otlp:
protocols:
http:
endpoint: "0.0.0.0:4318"
grpc:
endpoint: "0.0.0.0:4317"
processors:
batch:
exporters:
loki:
endpoint: "https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn/loki/api/v1/push"
headers:
Authorization: "Bearer YOUR_LOGS_TOKEN"
prometheusremotewrite:
endpoint: "https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn/api/v1/push"
headers:
Authorization: "Bearer YOUR_METRICS_TOKEN"
otlp:
endpoint: "obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn:443"
headers:
Authorization: "Bearer YOUR_TRACES_TOKEN"
extensions:
health_check:
pprof:
endpoint: :1888
zpages:
endpoint: :55679
service:
extensions: [health_check, pprof, zpages]
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
metrics:
receivers: [otlp]
exporters: [prometheusremotewrite]
logs:
receivers: [otlp]
exporters: [loki]
Tạo file docker-compost.yaml
Tạo file docker-compost.yaml và paste nội dung config sau:
version: "3"
services:
otel-collector:
image: otel/opentelemetry-collector-contrib
volumes:
- $YOUR_FOLDER/config.yaml:/etc/otelcol-contrib/config.yaml
ports:
- 1888:1888 # pprof extension
- 8888:8888 # Prometheus metrics exposed by the Collector
- 8889:8889 # Prometheus exporter metrics
- 13133:13133 # health_check extension
- 4317:4317 # OTLP gRPC receiver
- 4318:4318 # OTLP http receiver
- 55679:55679 # zpages extension
network_mode: host
Run
docker-compose up -d --build
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:
loki.write "grafana_loki" {
endpoint {
url = "https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn/loki/api/v1/push"
bearer_token = "YOUR_LOGS_TOKEN"
}
}
prometheus.remote_write "mimir" {
endpoint {
url = "https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn/api/v1/push"
bearer_token = "YOUR_METRICS_TOKEN"
}
}
otelcol.receiver.otlp "example" {
grpc {
endpoint = "127.0.0.1:4317"
}
http {
endpoint = "127.0.0.1:4318"
}
output {
metrics = [otelcol.processor.batch.example.input]
logs = [otelcol.processor.batch.example.input]
traces = [otelcol.processor.batch.example.input]
}
}
otelcol.processor.batch "example" {
output {
metrics = [otelcol.exporter.prometheus.oltp_mimir.input]
logs = [otelcol.exporter.loki.oltp_loki.input]
traces = [otelcol.exporter.otlp.oltp_tempo_grpc.input]
}
}
otelcol.exporter.loki "oltp_loki" {
forward_to = [loki.write.grafana_loki.receiver]
}
otelcol.exporter.prometheus "oltp_mimir" {
forward_to = [prometheus.remote_write.mimir.receiver]
}
otelcol.exporter.otlp "oltp_tempo_grpc" {
client {
endpoint = "https://obs-30199fb2-e61f-441a-b7ce.staging.obs.bfcplatform.vn"
auth = otelcol.auth.bearer.token.handler
}
}
otelcol.auth.bearer "token" {
token = "YOUR_TRACES_TOKEN"
}
Run (Standalone)
alloy run config.alloy
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 Tempo datasource
Nhập filters rồi click Run query
Kết quả đã thấy traces đã được push lên Tempo