mirror of
https://github.com/Dannecron/grafana-for-dev.git
synced 2025-12-25 15:52:35 +03:00
replace agent with alloy
some fixes
This commit is contained in:
16
.env.example
16
.env.example
@@ -1,23 +1,21 @@
|
||||
COMPOSE_PROFILES=grafana
|
||||
|
||||
GRAFANA_VERSION=11.1.3
|
||||
GRAFANA_VERSION=11.6.2
|
||||
GRAFANA_HOST=grafana.docker.localhost
|
||||
|
||||
LOKI_STACK_VERSION=3.1.1
|
||||
LOKI_STACK_VERSION=3.5.1
|
||||
LOKI_HOST=loki.docker.localhost
|
||||
LOKI_PROMTAIL_HOST=promtail.docker.localhost
|
||||
|
||||
AGENT_VERSION=v0.39.0
|
||||
AGENT_LOKI_URL=loki:3100
|
||||
AGENT_TEMPO_URL=tempo:4317
|
||||
ALLOY_VERSION=v1.11.3
|
||||
|
||||
TEMPO_VERSION=2.3.1
|
||||
TEMPO_VERSION=2.9.0
|
||||
TEMPO_CONFIG_FILE=/etc/tempo/tempo.yml
|
||||
TEMPO_SERVER_LOG_LEVEL=info
|
||||
TEMPO_STORAGE_PATH=/opt/tempo
|
||||
TEMPO_STORAGE_PATH=/var/tempo
|
||||
TEMPO_PROMETHEUS_URL=prometheus:9090
|
||||
|
||||
PROMETHEUS_VERSION=v2.43.0
|
||||
PROMETHEUS_NODE_EXPORTER_VERSION=v1.5.0
|
||||
PROMETHEUS_VERSION=v3.4.1
|
||||
PROMETHEUS_NODE_EXPORTER_VERSION=v1.9.1
|
||||
PROMETHEUS_HOST=prometheus.docker.localhost
|
||||
PROMETHEUS_RETENTION_TIME=10d
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
logs:
|
||||
configs:
|
||||
- name: local
|
||||
clients:
|
||||
- url: "http://${AGENT_LOKI_URL}/loki/api/v1/push"
|
||||
scrape_configs:
|
||||
- docker_sd_configs:
|
||||
- host: unix:///var/run/docker.sock
|
||||
refresh_interval: 10s
|
||||
job_name: docker
|
||||
pipeline_stages:
|
||||
- drop:
|
||||
drop_counter_reason: reject_old_samples
|
||||
older_than: 30m
|
||||
- static_labels:
|
||||
job: docker
|
||||
relabel_configs:
|
||||
- regex: /(.*)
|
||||
source_labels: [__meta_docker_container_name]
|
||||
target_label: container_name
|
||||
- source_labels: [__meta_docker_container_id]
|
||||
target_label: container_id
|
||||
- source_labels: [__meta_docker_container_log_stream]
|
||||
target_label: stream
|
||||
- source_labels: [__meta_docker_container_label_com_docker_compose_project]
|
||||
target_label: compose_project
|
||||
- source_labels: [__meta_docker_container_label_org_label_schema_vcs_ref]
|
||||
target_label: vcs_ref
|
||||
- source_labels: [__meta_docker_container_label_org_label_schema_version]
|
||||
target_label: image_version
|
||||
positions_directory: /opt/positions
|
||||
|
||||
traces:
|
||||
configs:
|
||||
- name: tempo
|
||||
remote_write:
|
||||
- endpoint: "http://${AGENT_TEMPO_URL}"
|
||||
insecure: true
|
||||
receivers:
|
||||
otlp:
|
||||
protocols:
|
||||
http:
|
||||
grpc:
|
||||
automatic_logging:
|
||||
backend: "logs_instance"
|
||||
logs_instance_name: "local"
|
||||
roots: true
|
||||
server:
|
||||
log_level: info
|
||||
99
alloy/alloy.conf
Normal file
99
alloy/alloy.conf
Normal file
@@ -0,0 +1,99 @@
|
||||
discovery.docker "logs_local_docker" {
|
||||
host = "unix:///var/run/docker.sock"
|
||||
refresh_interval = "10s"
|
||||
}
|
||||
|
||||
loki.process "logs_local_docker" {
|
||||
forward_to = [loki.write.logs_local.receiver]
|
||||
|
||||
stage.drop {
|
||||
drop_counter_reason = "reject_old_samples"
|
||||
older_than = "30m0s"
|
||||
}
|
||||
|
||||
stage.static_labels {
|
||||
values = {
|
||||
job = "docker",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
discovery.relabel "logs_local_docker" {
|
||||
targets = []
|
||||
|
||||
rule {
|
||||
source_labels = ["__meta_docker_container_name"]
|
||||
regex = "/(.*)"
|
||||
target_label = "container_name"
|
||||
}
|
||||
|
||||
rule {
|
||||
source_labels = ["__meta_docker_container_id"]
|
||||
target_label = "container_id"
|
||||
}
|
||||
|
||||
rule {
|
||||
source_labels = ["__meta_docker_container_log_stream"]
|
||||
target_label = "stream"
|
||||
}
|
||||
|
||||
rule {
|
||||
source_labels = ["__meta_docker_container_label_com_docker_compose_project"]
|
||||
target_label = "compose_project"
|
||||
}
|
||||
|
||||
rule {
|
||||
source_labels = ["__meta_docker_container_label_org_label_schema_vcs_ref"]
|
||||
target_label = "vcs_ref"
|
||||
}
|
||||
|
||||
rule {
|
||||
source_labels = ["__meta_docker_container_label_org_label_schema_version"]
|
||||
target_label = "image_version"
|
||||
}
|
||||
}
|
||||
|
||||
loki.source.docker "logs_local_docker" {
|
||||
host = "unix:///var/run/docker.sock"
|
||||
targets = discovery.docker.logs_local_docker.targets
|
||||
forward_to = [loki.process.logs_local_docker.receiver]
|
||||
relabel_rules = discovery.relabel.logs_local_docker.rules
|
||||
refresh_interval = "10s"
|
||||
}
|
||||
|
||||
loki.write "logs_local" {
|
||||
endpoint {
|
||||
url = "http://loki:3100/loki/api/v1/push"
|
||||
}
|
||||
external_labels = {}
|
||||
}
|
||||
|
||||
otelcol.receiver.otlp "default" {
|
||||
grpc {
|
||||
endpoint = "0.0.0.0:4317"
|
||||
include_metadata = true
|
||||
}
|
||||
|
||||
http {
|
||||
endpoint = "0.0.0.0:4318"
|
||||
include_metadata = true
|
||||
}
|
||||
|
||||
output {
|
||||
traces = [otelcol.exporter.otlphttp.tempo_http.input]
|
||||
}
|
||||
}
|
||||
|
||||
otelcol.exporter.otlphttp "tempo_http" {
|
||||
retry_on_failure {
|
||||
max_elapsed_time = "1m0s"
|
||||
}
|
||||
|
||||
client {
|
||||
endpoint = "http://tempo:4318"
|
||||
tls {
|
||||
insecure = true
|
||||
insecure_skip_verify = true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -28,21 +28,23 @@ services:
|
||||
profiles:
|
||||
- grafana
|
||||
|
||||
agent:
|
||||
image: grafana/agent:${AGENT_VERSION}
|
||||
environment:
|
||||
WAL_DATA_DIRECTORY: /opt/agent/data
|
||||
CONFIG_FILE_PATH: /etc/agent/agent.yaml
|
||||
AGENT_LOKI_URL: "${AGENT_LOKI_URL}"
|
||||
AGENT_TEMPO_URL: "${AGENT_TEMPO_URL}"
|
||||
alloy:
|
||||
image: grafana/alloy:${ALLOY_VERSION}
|
||||
volumes:
|
||||
- ./agent:/etc/agent/
|
||||
- ./alloy/alloy.conf:/etc/alloy/config.alloy
|
||||
- alloy-data:/var/lib/alloy/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
command:
|
||||
- "-config.file=/etc/agent/agent.yaml"
|
||||
- "-config.expand-env"
|
||||
- run
|
||||
- /etc/alloy/config.alloy
|
||||
- --storage.path=/var/lib/alloy/data
|
||||
- --server.http.listen-addr=0.0.0.0:12345
|
||||
expose:
|
||||
- 12345
|
||||
- 4317 # otlp grpc
|
||||
- 4318 # otlp http
|
||||
profiles:
|
||||
- agent
|
||||
- alloy
|
||||
|
||||
tempo:
|
||||
image: grafana/tempo:${TEMPO_VERSION}
|
||||
@@ -60,7 +62,7 @@ services:
|
||||
TEMPO_PROMETHEUS_URL: ${TEMPO_PROMETHEUS_URL}
|
||||
volumes:
|
||||
- ./tempo:/etc/tempo
|
||||
- tempo-local-storage:${TEMPO_STORAGE_PATH:-/opt/tempo}
|
||||
- tempo-local-storage:${TEMPO_STORAGE_PATH:-/var/tempo}
|
||||
profiles:
|
||||
- tempo
|
||||
|
||||
@@ -105,3 +107,4 @@ volumes:
|
||||
grafana-storage:
|
||||
tempo-local-storage:
|
||||
prometheus-data:
|
||||
alloy-data:
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
1. Скопировать [.env.example](/.env.example) в `.env`
|
||||
|
||||
#### With grafana agent
|
||||
#### With grafana alloy
|
||||
|
||||
1. Добавить в `COMPOSE_PROFILES` значение `agent` в файле [.env](/.env)
|
||||
1. Добавить в `COMPOSE_PROFILES` значение `alloy` в файле [.env](/.env)
|
||||
2. Запустить docker-compose-стэк:
|
||||
```shell
|
||||
docker compose up -d
|
||||
@@ -48,7 +48,7 @@
|
||||
<<: *loki-log-config
|
||||
```
|
||||
|
||||
3. Убрать профиль `agent` из значения `COMPOSE_PROFILES` в файле [.env](/.env)
|
||||
3. Убрать профиль `alloy` из значения `COMPOSE_PROFILES` в файле [.env](/.env)
|
||||
4. Запустить стек `grafana` + `loki`
|
||||
|
||||
```shell
|
||||
|
||||
@@ -22,7 +22,9 @@ distributor:
|
||||
otlp:
|
||||
protocols:
|
||||
http:
|
||||
endpoint: "0.0.0.0:4318"
|
||||
grpc:
|
||||
endpoint: "0.0.0.0:4317"
|
||||
|
||||
ingester:
|
||||
max_block_duration: 5m # cut the headblock when this much time passes. this is being set for demo purposes and should probably be left alone normally
|
||||
|
||||
Reference in New Issue
Block a user