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
|
COMPOSE_PROFILES=grafana
|
||||||
|
|
||||||
GRAFANA_VERSION=11.1.3
|
GRAFANA_VERSION=11.6.2
|
||||||
GRAFANA_HOST=grafana.docker.localhost
|
GRAFANA_HOST=grafana.docker.localhost
|
||||||
|
|
||||||
LOKI_STACK_VERSION=3.1.1
|
LOKI_STACK_VERSION=3.5.1
|
||||||
LOKI_HOST=loki.docker.localhost
|
LOKI_HOST=loki.docker.localhost
|
||||||
LOKI_PROMTAIL_HOST=promtail.docker.localhost
|
LOKI_PROMTAIL_HOST=promtail.docker.localhost
|
||||||
|
|
||||||
AGENT_VERSION=v0.39.0
|
ALLOY_VERSION=v1.11.3
|
||||||
AGENT_LOKI_URL=loki:3100
|
|
||||||
AGENT_TEMPO_URL=tempo:4317
|
|
||||||
|
|
||||||
TEMPO_VERSION=2.3.1
|
TEMPO_VERSION=2.9.0
|
||||||
TEMPO_CONFIG_FILE=/etc/tempo/tempo.yml
|
TEMPO_CONFIG_FILE=/etc/tempo/tempo.yml
|
||||||
TEMPO_SERVER_LOG_LEVEL=info
|
TEMPO_SERVER_LOG_LEVEL=info
|
||||||
TEMPO_STORAGE_PATH=/opt/tempo
|
TEMPO_STORAGE_PATH=/var/tempo
|
||||||
TEMPO_PROMETHEUS_URL=prometheus:9090
|
TEMPO_PROMETHEUS_URL=prometheus:9090
|
||||||
|
|
||||||
PROMETHEUS_VERSION=v2.43.0
|
PROMETHEUS_VERSION=v3.4.1
|
||||||
PROMETHEUS_NODE_EXPORTER_VERSION=v1.5.0
|
PROMETHEUS_NODE_EXPORTER_VERSION=v1.9.1
|
||||||
PROMETHEUS_HOST=prometheus.docker.localhost
|
PROMETHEUS_HOST=prometheus.docker.localhost
|
||||||
PROMETHEUS_RETENTION_TIME=10d
|
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:
|
profiles:
|
||||||
- grafana
|
- grafana
|
||||||
|
|
||||||
agent:
|
alloy:
|
||||||
image: grafana/agent:${AGENT_VERSION}
|
image: grafana/alloy:${ALLOY_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}"
|
|
||||||
volumes:
|
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
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
command:
|
command:
|
||||||
- "-config.file=/etc/agent/agent.yaml"
|
- run
|
||||||
- "-config.expand-env"
|
- /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:
|
profiles:
|
||||||
- agent
|
- alloy
|
||||||
|
|
||||||
tempo:
|
tempo:
|
||||||
image: grafana/tempo:${TEMPO_VERSION}
|
image: grafana/tempo:${TEMPO_VERSION}
|
||||||
@@ -60,7 +62,7 @@ services:
|
|||||||
TEMPO_PROMETHEUS_URL: ${TEMPO_PROMETHEUS_URL}
|
TEMPO_PROMETHEUS_URL: ${TEMPO_PROMETHEUS_URL}
|
||||||
volumes:
|
volumes:
|
||||||
- ./tempo:/etc/tempo
|
- ./tempo:/etc/tempo
|
||||||
- tempo-local-storage:${TEMPO_STORAGE_PATH:-/opt/tempo}
|
- tempo-local-storage:${TEMPO_STORAGE_PATH:-/var/tempo}
|
||||||
profiles:
|
profiles:
|
||||||
- tempo
|
- tempo
|
||||||
|
|
||||||
@@ -105,3 +107,4 @@ volumes:
|
|||||||
grafana-storage:
|
grafana-storage:
|
||||||
tempo-local-storage:
|
tempo-local-storage:
|
||||||
prometheus-data:
|
prometheus-data:
|
||||||
|
alloy-data:
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
|
|
||||||
1. Скопировать [.env.example](/.env.example) в `.env`
|
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-стэк:
|
2. Запустить docker-compose-стэк:
|
||||||
```shell
|
```shell
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
<<: *loki-log-config
|
<<: *loki-log-config
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Убрать профиль `agent` из значения `COMPOSE_PROFILES` в файле [.env](/.env)
|
3. Убрать профиль `alloy` из значения `COMPOSE_PROFILES` в файле [.env](/.env)
|
||||||
4. Запустить стек `grafana` + `loki`
|
4. Запустить стек `grafana` + `loki`
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
|||||||
@@ -22,7 +22,9 @@ distributor:
|
|||||||
otlp:
|
otlp:
|
||||||
protocols:
|
protocols:
|
||||||
http:
|
http:
|
||||||
|
endpoint: "0.0.0.0:4318"
|
||||||
grpc:
|
grpc:
|
||||||
|
endpoint: "0.0.0.0:4317"
|
||||||
|
|
||||||
ingester:
|
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
|
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