qclaogui / codelab-monitoring

Little helper to run Grafana LGTMP Stack(Loki Grafana Tempo Mimir Pyroscope) in Docker or Kubernetes.
Apache License 2.0
30 stars 6 forks source link

Imrpove Alloy integrations #102

Closed qclaogui closed 4 months ago

qclaogui commented 4 months ago

Imrpove Alloy integrations

Example alloy config: all-in-one.alloy

logging {
    level  = coalesce(env("ALLOY_LOG_LEVEL"), "info")
    format = "logfmt"
}

/********************************************
 * Grafana LGTMP Stack Receiver Provider
 ********************************************/
import.git "provider" {
    repository     = "https://github.com/qclaogui/codelab-monitoring.git"
    revision       = "main"
    path           = "alloy-modules/provider"
    pull_frequency = "24h"
}

// get self hosted receivers provider
provider.self_hosted_stack "compose" {
    logs_endpoint_url     = "http://gateway:3100/loki/api/v1/push"
    metrics_endpoint_url  = "http://gateway:8080/api/v1/push"
    traces_endpoint_url   = "http://gateway:4318"
    profiles_endpoint_url = "http://gateway:4040"
}

/********************************************
 * Metrics
 ********************************************/
import.file "metrics" {
    filename = coalesce(env("ALLOY_MODULES_FOLDER"), "/etc/alloy/modules") + "/compose/metrics"
}

metrics.labels_scrape "compose" {
    label_prefix    = "metrics.grafana.com"
    forward_to      = [provider.self_hosted_stack.compose.metrics_receiver]
    scrape_interval = "15s"
}

metrics.jobs_scrape "compose" {
    forward_to      = [provider.self_hosted_stack.compose.metrics_receiver]
    scrape_interval = "15s"
}

+metrics.integrations_scrape "compose" {
+   forward_to      = [provider.self_hosted_stack.compose.metrics_receiver]
+   scrape_interval = "15s"
+}

/********************************************
 * Logs
 ********************************************/
import.file "logs" {
    filename = coalesce(env("ALLOY_MODULES_FOLDER"), "/etc/alloy/modules") + "/compose/logs"
}

logs.labels_scrape "compose" {
    label_prefix = "logs.grafana.com"
    forward_to   = [logs.keep_labels.compose.receiver]
}

// logs Processing And Transformation
logs.keep_labels "compose" {
    forward_to = [provider.self_hosted_stack.compose.logs_receiver]
}

/********************************************
 * Traces
 ********************************************/
import.file "traces" {
    filename = coalesce(env("ALLOY_MODULES_FOLDER"), "/etc/alloy/modules") + "/compose/traces"
}

// traces Processing And Transformation process_and_transform
traces.process_and_transform "compose" {
    metrics_forward_to = [provider.self_hosted_stack.compose.metrics_receiver]
    logs_forward_to    = [provider.self_hosted_stack.compose.logs_receiver]
    traces_forward_to  = [provider.self_hosted_stack.compose.traces_receiver]
}

tracing {
    // Write all spans. Don't do this in production!
    sampling_fraction = 1

    // Forward Alloy internal spans to traces process.
    write_to = [traces.process_and_transform.compose.alloy_traces_input]
}

/********************************************
 * Profiles
 ********************************************/
import.file "profiles" {
    filename = coalesce(env("ALLOY_MODULES_FOLDER"), "/etc/alloy/modules") + "/compose/profiles"
}

profiles.labels_scrape "compose" {
    label_prefix = "profiles.grafana.com"
    forward_to   = [provider.self_hosted_stack.compose.profiles_receiver]
}