139 lines
3.2 KiB
Plaintext
139 lines
3.2 KiB
Plaintext
faro.receiver "stage_app_agent_receiver" {
|
|
server {
|
|
listen_address = "0.0.0.0"
|
|
listen_port = 12347
|
|
cors_allowed_origins = ["*"]
|
|
// cors_allowed_origins = ["https://avicenna.genius.ceo"]
|
|
api_key = "t3stK3y"
|
|
max_allowed_payload_size = "10MiB"
|
|
|
|
rate_limiting {
|
|
rate = 100
|
|
}
|
|
}
|
|
|
|
sourcemaps {}
|
|
|
|
output {
|
|
logs = [loki.process.logs_process_client.receiver]
|
|
traces = [otelcol.exporter.otlp.tempo.input]
|
|
}
|
|
}
|
|
|
|
loki.process "logs_process_client" {
|
|
forward_to = [loki.write.to_loki.receiver]
|
|
|
|
stage.logfmt {
|
|
mapping = { "kind" = "", "service_name" = "", "app_name" = "", "namespace" = "" }
|
|
}
|
|
|
|
stage.labels {
|
|
values = { "kind" = "kind", "service_name" = "service_name", "app" = "app_name", "namespace" = "namespace" }
|
|
}
|
|
}
|
|
|
|
otelcol.receiver.otlp "otel_collector" {
|
|
grpc {
|
|
endpoint = "0.0.0.0:4317"
|
|
}
|
|
http {
|
|
endpoint = "0.0.0.0:4318"
|
|
cors {
|
|
allowed_origins = ["https://avicenna.genius.ceo/"]
|
|
}
|
|
}
|
|
|
|
// Definiert, wohin die empfangenen Daten weitergeleitet werden
|
|
output {
|
|
metrics = [otelcol.exporter.prometheus.otel_metrics.input]
|
|
logs = [otelcol.exporter.loki.otel_logs.input]
|
|
traces = [otelcol.exporter.otlp.tempo.input]
|
|
}
|
|
}
|
|
|
|
loki.write "to_loki" {
|
|
endpoint {
|
|
url = "http://loki:3100/loki/api/v1/push"
|
|
}
|
|
}
|
|
|
|
prometheus.remote_write "to_prometheus" {
|
|
endpoint {
|
|
url = "http://prometheus:9090/api/v1/write"
|
|
}
|
|
}
|
|
|
|
// Docker-Container auf dem Host entdecken
|
|
discovery.docker "logs_integration_docker" {
|
|
host = "unix:///var/run/docker.sock"
|
|
refresh_interval = "5s"
|
|
}
|
|
discovery.relabel "logs_integration_docker" {
|
|
targets = []
|
|
|
|
rule {
|
|
action = "labelmap"
|
|
regex = "__meta_docker_container_label_com_docker_swarm_node_id"
|
|
replacement = "node_id"
|
|
}
|
|
|
|
rule {
|
|
action = "labelmap"
|
|
regex = "__meta_docker_container_label_com_docker_stack_namespace"
|
|
replacement = "namespace"
|
|
}
|
|
|
|
rule {
|
|
action = "labelmap"
|
|
regex = "__meta_docker_container_label_com_docker_swarm_service_name"
|
|
replacement = "service_name"
|
|
}
|
|
|
|
rule {
|
|
action = "labelmap"
|
|
regex = "__meta_docker_container_name"
|
|
replacement = "container_name"
|
|
}
|
|
}
|
|
|
|
loki.source.docker "logs_from_containers" {
|
|
host = "unix:///var/run/docker.sock"
|
|
targets = discovery.docker.logs_integration_docker.targets // Nutzt die entdeckten Container
|
|
|
|
relabel_rules = discovery.relabel.logs_integration_docker.rules
|
|
|
|
// Leitet die gesammelten Logs an den definierten Loki-Endpunkt weiter
|
|
forward_to = [loki.write.to_loki.receiver]
|
|
}
|
|
|
|
otelcol.exporter.otlp "tempo" { // Name kann variieren
|
|
client {
|
|
endpoint = "tempo:4317" // Ziel: Tempo Service auf Port 4317
|
|
tls {
|
|
insecure = true // Interne Kommunikation ohne TLS
|
|
}
|
|
}
|
|
}
|
|
|
|
otelcol.exporter.prometheus "otel_metrics" {
|
|
forward_to = [prometheus.remote_write.to_prometheus.receiver]
|
|
}
|
|
|
|
otelcol.exporter.loki "otel_logs" {
|
|
forward_to = [loki.write.to_loki.receiver]
|
|
}
|
|
|
|
// Logging für Alloy selbst konfigurieren
|
|
logging {
|
|
level = "info"
|
|
format = "logfmt"
|
|
}
|
|
|
|
// prometheus.scrape "alloy_self" {
|
|
// targets = [
|
|
// prometheus.target_group {
|
|
// targets = [{"__address__" = "localhost:12345"}]
|
|
// }
|
|
// ]
|
|
// forward_to = [...] // An Prometheus Remote Write oder lokalen Agent
|
|
// } |