Guest User

Untitled

a guest
Sep 11th, 2025
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.49 KB | None | 0 0
  1. prometheus.remote_write "metrics_service" {
  2.  endpoint {
  3.    url = "https://[YOUR PROMETHEUS ENDPOINT]/api/v1/write"
  4.  }
  5. }
  6.  
  7. loki.write "grafana_loki" {
  8.   endpoint {
  9.     url = "https://[YOUR LOKI ENDPOINT]/loki/api/v1/push"
  10.   }
  11. }
  12.  
  13. discovery.relabel "metrics_integrations_integrations_traefik" {
  14.   targets = [{
  15.     __address__ = "localhost:8082"
  16.   }]
  17.  
  18.   rule {
  19.     target_label = "instance"
  20.     replacement  = constants.hostname
  21.   }
  22. }
  23.  
  24. prometheus.scrape "metrics_integrations_integrations_traefik" {
  25.   targets    = discovery.relabel.metrics_integrations_integrations_traefik.output
  26.   forward_to = [prometheus.relabel.metrics_integrations_integrations_traefik.receiver]
  27.   job_name   = "integrations/traefik"
  28. }
  29.  
  30. prometheus.relabel "metrics_integrations_integrations_traefik" {
  31.   forward_to = [prometheus.remote_write.metrics_service.receiver]
  32.  
  33.   rule {
  34.     source_labels = ["__name__"]
  35.     regex         = "up|traefik_entrypoint_requests_total|traefik_service_request_duration_seconds_sum|traefik_service_requests_total"
  36.     action        = "keep"
  37.   }
  38. }
  39.  
  40. discovery.relabel "metrics_integrations_integrations_crowdsec" {
  41.   targets = [{
  42.     __address__ = "127.0.0.1:6060"
  43.   }]
  44.  
  45.   rule {
  46.     target_label = "instance"
  47.     replacement  = constants.hostname
  48.   }
  49. }
  50.  
  51. prometheus.scrape "metrics_integrations_integrations_crowdsec" {
  52.   targets         = discovery.relabel.metrics_integrations_integrations_crowdsec.output
  53.   forward_to      = [prometheus.relabel.metrics_integrations_integrations_crowdsec.receiver]
  54.   job_name        = "integrations/crowdsec"
  55.   scrape_interval = "30s"
  56. }
  57.  
  58. prometheus.relabel "metrics_integrations_integrations_crowdsec" {
  59.   forward_to = [prometheus.remote_write.metrics_service.receiver]
  60.  
  61.   rule {
  62.     source_labels = ["__name__"]
  63.     regex         = "up|crowdsec_.*|cs_.*"
  64.     action        = "keep"
  65.   }
  66. }
  67.  
  68. discovery.relabel "integrations_node_exporter" {
  69.   targets = prometheus.exporter.unix.integrations_node_exporter.targets
  70.  
  71.   rule {
  72.     target_label = "instance"
  73.     replacement  = constants.hostname
  74.   }
  75.  
  76.   rule {
  77.     target_label = "job"
  78.     replacement = "integrations/node_exporter"
  79.   }
  80. }
  81.  
  82. prometheus.exporter.unix "integrations_node_exporter" {
  83.   disable_collectors = ["ipvs", "btrfs", "infiniband", "xfs", "zfs"]
  84.  
  85.   filesystem {
  86.     fs_types_exclude     = "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|tmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$"
  87.     mount_points_exclude = "^/(dev|proc|run/credentials/.+|sys|var/lib/docker/.+)($|/)"
  88.     mount_timeout        = "5s"
  89.   }
  90.  
  91.   netclass {
  92.     ignored_devices = "^(veth.*|cali.*|[a-f0-9]{15})$"
  93.   }
  94.  
  95.   netdev {
  96.     device_exclude = "^(veth.*|cali.*|[a-f0-9]{15})$"
  97.   }
  98. }
  99.  
  100. prometheus.scrape "integrations_node_exporter" {
  101.   targets    = discovery.relabel.integrations_node_exporter.output
  102.   forward_to = [prometheus.relabel.integrations_node_exporter.receiver]
  103. }
  104.  
  105. prometheus.relabel "integrations_node_exporter" {
  106.   forward_to = [prometheus.remote_write.metrics_service.receiver]
  107.  
  108.   rule {
  109.     source_labels = ["__name__"]
  110.     regex         = "up|traefik_entrypoint_requests_total|traefik_service_request_duration_seconds_sum|traefik_service_requests_total"
  111.     action        = "keep"
  112.   }
  113. }
  114.  
  115. loki.relabel "integrations_node_exporter" {
  116.   forward_to = [loki.write.grafana_loki.receiver]
  117.   rule {
  118.     target_label = "job"
  119.     replacement  = "integrations/node_exporter"
  120.   }
  121.   rule {
  122.     target_label = "instance"
  123.     replacement  = constants.hostname
  124.   }
  125. }
  126.  
  127. journal_module "integrations_node_exporter" {
  128.   forward_to = [loki.relabel.integrations_node_exporter.receiver]
  129. }
  130.  
  131. //JOURNAL
  132. declare "journal_module" {
  133.   argument "forward_to" {
  134.       optional = false
  135.   }
  136.  
  137.   loki.source.journal "default"  {
  138.       max_age       = "12h0m0s"
  139.       forward_to    = [loki.process.default.receiver]
  140.       relabel_rules = loki.relabel.default.rules
  141.   }
  142.  
  143.   loki.relabel "default" {
  144.       rule {
  145.           source_labels = ["__journal__systemd_unit"]
  146.           target_label  = "unit"
  147.       }
  148.       rule {
  149.           source_labels = ["__journal__boot_id"]
  150.           target_label  = "boot_id"
  151.       }
  152.       rule {
  153.           source_labels = ["__journal__transport"]
  154.           target_label  = "transport"
  155.       }
  156.       rule {
  157.           source_labels = ["__journal_priority_keyword"]
  158.           target_label  = "level"
  159.       }
  160.       forward_to    = []
  161.   }
  162.   loki.process "default" {
  163.       forward_to    = argument.forward_to.value
  164.   }
  165. }
  166.  
  167. prometheus.exporter.cadvisor "integrations_cadvisor" {
  168.     docker_only = true
  169. }
  170. discovery.relabel "integrations_cadvisor" {
  171.     targets = prometheus.exporter.cadvisor.integrations_cadvisor.targets
  172.  
  173.     rule {
  174.         target_label = "job"
  175.         replacement  = "integrations/docker"
  176.     }
  177.  
  178.     rule {
  179.         target_label = "instance"
  180.         replacement  = constants.hostname
  181.     }
  182. }
  183. prometheus.scrape "integrations_cadvisor" {
  184.     targets    = discovery.relabel.integrations_cadvisor.output
  185.     forward_to = [prometheus.remote_write.metrics_service.receiver]
  186. }
  187.  
  188. discovery.docker "logs_integrations_docker" {
  189.     host             = "unix:///var/run/docker.sock"
  190.     refresh_interval = "5s"
  191. }
  192. discovery.relabel "logs_integrations_docker" {
  193.     targets = []
  194.  
  195.     rule {
  196.         target_label = "job"
  197.         replacement  = "integrations/docker"
  198.     }
  199.  
  200.     rule {
  201.         target_label = "instance"
  202.         replacement  = constants.hostname
  203.     }
  204.  
  205.     rule {
  206.         source_labels = ["__meta_docker_container_name"]
  207.         regex         = "/(.*)"
  208.         target_label  = "container"
  209.     }
  210.  
  211.     rule {
  212.         source_labels = ["__meta_docker_container_log_stream"]
  213.         target_label  = "stream"
  214.     }
  215. }
  216. loki.source.docker "logs_integrations_docker" {
  217.     host             = "unix:///var/run/docker.sock"
  218.     targets          = discovery.docker.logs_integrations_docker.targets
  219.     forward_to       = [loki.write.grafana_loki.receiver]
  220.     relabel_rules    = discovery.relabel.logs_integrations_docker.rules
  221.     refresh_interval = "5s"
  222. }
Advertisement
Add Comment
Please, Sign In to add comment