mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
40
devenv/docker/blocks/self-instrumentation/agent.yaml
Normal file
40
devenv/docker/blocks/self-instrumentation/agent.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
logs:
|
||||
positions_directory: /tmp/loki-pos
|
||||
configs:
|
||||
- name: default
|
||||
scrape_configs: []
|
||||
clients:
|
||||
- url: http://host.docker.internal:3100/loki/api/v1/push
|
||||
traces:
|
||||
configs:
|
||||
- name: default
|
||||
remote_write:
|
||||
- endpoint: http://host.docker.internal:3200
|
||||
insecure: true
|
||||
receivers:
|
||||
otlp:
|
||||
protocols:
|
||||
grpc:
|
||||
http:
|
||||
cors:
|
||||
allowed_origins:
|
||||
- "*"
|
||||
integrations:
|
||||
app_agent_receiver_configs:
|
||||
- autoscrape:
|
||||
enable: false
|
||||
instance: "frontend"
|
||||
logs_instance: "default"
|
||||
traces_instance: "default"
|
||||
server:
|
||||
host: 0.0.0.0
|
||||
port: 12347
|
||||
cors_allowed_origins:
|
||||
- "*"
|
||||
logs_labels: # labels to add to loki log record
|
||||
app: frontend # static value
|
||||
kind: # value will be taken from log items. exception, log, measurement, etc
|
||||
logs_send_timeout: 5000
|
||||
sourcemaps:
|
||||
download: true # will download source file, extract source map location,
|
||||
# download source map and use it to transform stack trace locations
|
||||
@@ -0,0 +1,45 @@
|
||||
prometheus:
|
||||
image: prom/prometheus:v2.45.0
|
||||
ports:
|
||||
- "9090:9090"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
command: >
|
||||
--enable-feature=remote-write-receiver
|
||||
--config.file=/etc/prometheus/prometheus.yml
|
||||
--storage.tsdb.path=/prometheus
|
||||
volumes:
|
||||
- ./docker/blocks/self-instrumentation/prometheus.yaml:/etc/prometheus/prometheus.yml
|
||||
loki:
|
||||
image: grafana/loki:2.8.2
|
||||
ports:
|
||||
- "3100:3100"
|
||||
command: -config.file=/etc/loki/local-config.yaml
|
||||
promtail:
|
||||
image: grafana/promtail:2.8.2
|
||||
command: -config.file=/etc/promtail/promtail.yaml
|
||||
volumes:
|
||||
- ./docker/blocks/self-instrumentation/promtail.yaml:/etc/promtail/promtail.yaml
|
||||
- ../data/log:/var/log/grafana
|
||||
tempo:
|
||||
image: grafana/tempo:2.1.1
|
||||
command: -config.file=/etc/tempo.yaml
|
||||
volumes:
|
||||
- ./docker/blocks/self-instrumentation/tempo.yaml:/etc/tempo.yaml
|
||||
ports:
|
||||
- "14268:14268"
|
||||
- "3200:3200"
|
||||
agent:
|
||||
image: grafana/agent:v0.34.3
|
||||
entrypoint:
|
||||
- /bin/grafana-agent
|
||||
- -server.http.address=0.0.0.0:12345
|
||||
- -config.file=/etc/agent/agent.yaml
|
||||
- -enable-features=integrations-next
|
||||
volumes:
|
||||
- ./docker/blocks/self-instrumentation/agent.yaml:/etc/agent/agent.yaml
|
||||
ports:
|
||||
- "12345:12345"
|
||||
- "12347:12347"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
@@ -0,0 +1,9 @@
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
evaluation_interval: 15s
|
||||
|
||||
scrape_configs:
|
||||
- job_name: grafana
|
||||
static_configs:
|
||||
- targets:
|
||||
- host.docker.internal:3000
|
||||
18
devenv/docker/blocks/self-instrumentation/promtail.yaml
Normal file
18
devenv/docker/blocks/self-instrumentation/promtail.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
server:
|
||||
http_listen_port: 9080
|
||||
grpc_listen_port: 0
|
||||
|
||||
positions:
|
||||
filename: /tmp/positions.yaml
|
||||
|
||||
clients:
|
||||
- url: http://loki:3100/loki/api/v1/push
|
||||
|
||||
scrape_configs:
|
||||
- job_name: hosted-grafana/grafana
|
||||
static_configs:
|
||||
- targets:
|
||||
- localhost
|
||||
labels:
|
||||
job: hosted-grafana/grafana
|
||||
__path__: /var/log/grafana/*log
|
||||
19
devenv/docker/blocks/self-instrumentation/readme.md
Normal file
19
devenv/docker/blocks/self-instrumentation/readme.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Self Instrumentation
|
||||
|
||||
To run this source, in the Grafana repo root:
|
||||
|
||||
```
|
||||
make devenv sources=self-instrumentation
|
||||
```
|
||||
|
||||
This will setup Prometheus, Loki and Tempo.
|
||||
|
||||
You then need to run Grafana with those added config:
|
||||
|
||||
```ini
|
||||
[log.frontend]
|
||||
enabled = true
|
||||
|
||||
[tracing.opentelemetry.jaeger]
|
||||
address = http://localhost:14268/api/traces
|
||||
```
|
||||
44
devenv/docker/blocks/self-instrumentation/tempo.yaml
Normal file
44
devenv/docker/blocks/self-instrumentation/tempo.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
server:
|
||||
http_listen_port: 3200
|
||||
|
||||
distributor:
|
||||
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
||||
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
||||
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver
|
||||
thrift_http: #
|
||||
grpc: # for a production deployment you should only enable the receivers you need!
|
||||
thrift_binary:
|
||||
thrift_compact:
|
||||
zipkin:
|
||||
otlp:
|
||||
protocols:
|
||||
http:
|
||||
grpc:
|
||||
opencensus:
|
||||
|
||||
compactor:
|
||||
compaction:
|
||||
block_retention: 1h
|
||||
|
||||
metrics_generator:
|
||||
registry:
|
||||
external_labels:
|
||||
source: tempo
|
||||
cluster: docker-compose
|
||||
storage:
|
||||
path: /tmp/tempo/generator/wal
|
||||
remote_write:
|
||||
- url: http://prometheus:9090/api/v1/write
|
||||
send_exemplars: true
|
||||
|
||||
storage:
|
||||
trace:
|
||||
backend: local # backend configuration to use
|
||||
wal:
|
||||
path: /tmp/tempo/wal # where to store the the wal locally
|
||||
local:
|
||||
path: /tmp/tempo/blocks
|
||||
|
||||
overrides:
|
||||
metrics_generator_processors: [service-graphs, span-metrics]
|
||||
|
||||
Reference in New Issue
Block a user