Puppet Class: prometheus_streams

Defined in:
manifests/init.pp

Overview

Choria NATS Streaming based federation for Prometheus

Install and configure a tool to federate Prometheus metrics via NATS Streams

This module does not install the Choria YUM repository, it’s configured as:

“‘

choria_release

name=choria_release baseurl=packagecloud.io/choria/release/el/$releasever/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=packagecloud.io/choria/release/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 “‘

 @param ensure To install or uninstall the software

Parameters:

  • poller (Boolean) (defaults to: false)

    Enables the poller service

  • receiver (Boolean) (defaults to: false)

    Enables the receiver service

  • config_file (Stdlib::Absolutepath) (defaults to: "/etc/prometheus-streams/prometheus-streams.yaml")

    Path to the configuration file

  • log_file (Stdlib::Absolutepath) (defaults to: "/var/log/prometheus-streams.log")

    Path to the log file

  • debug (Boolean) (defaults to: false)

    Enables debug logging

  • verbose (Boolean) (defaults to: false)

    Enables verbose logging

  • scrape_interval (Pattern[/^\d+(m|h|s)$/]) (defaults to: "30s")

    Interval to scrape targets

  • max_age (Integer) (defaults to: 65)

    Maximum age of metrics the receiver will accept

  • monitor_port (Integer) (defaults to: 0)

    When set enables prometheus metrics on this port

  • poller_stream (Variant[Prometheus_streams::Stream, Hash[0, 0]]) (defaults to: {})

    Stream to publish metrics to

  • receiver_stream (Variant[Prometheus_streams::Stream, Hash[0, 0]]) (defaults to: {})

    Stream to read metrics from

  • push_gateway (Variant[Prometheus_streams::Push_gateway, Hash[0, 0]]) (defaults to: {})

    Push Gateway the Receiver will publish metrics to

  • management (Variant[Prometheus_streams::Management, Hash[0, 0]]) (defaults to: {})

    Configuration for the embedded Choria based management interface

  • jobs (Hash[String, Prometheus_streams::Job]) (defaults to: {})

    Targets to poll

  • poller_service_name (String) (defaults to: "prometheus-streams-poller")

    The name of the Poller service

  • receiver_service_name (String) (defaults to: "prometheus-streams-receiver")

    The name of the Receiver service

  • package_name (String) (defaults to: "prometheus-streams")

    The name of the package to install

  • version (String) (defaults to: "0.0.6")

    Which version to install

  • ensure (Enum[present, absent]) (defaults to: "present")


39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'manifests/init.pp', line 39

class prometheus_streams (
    Boolean $poller = false,
    Boolean $receiver = false,
    Stdlib::Absolutepath $config_file = "/etc/prometheus-streams/prometheus-streams.yaml",
    Stdlib::Absolutepath $log_file = "/var/log/prometheus-streams.log",
    Boolean $debug = false,
    Boolean $verbose = false,
    Pattern[/^\d+(m|h|s)$/] $scrape_interval = "30s",
    Integer $max_age = 65,
    Integer $monitor_port = 0,
    Variant[Prometheus_streams::Stream, Hash[0, 0]] $poller_stream = {},
    Variant[Prometheus_streams::Stream, Hash[0, 0]] $receiver_stream = {},
    Variant[Prometheus_streams::Push_gateway, Hash[0, 0]] $push_gateway = {},
    Variant[Prometheus_streams::Management, Hash[0, 0]] $management = {},
    Hash[String, Prometheus_streams::Job] $jobs = {},
    String $poller_service_name = "prometheus-streams-poller",
    String $receiver_service_name = "prometheus-streams-receiver",
    String $package_name = "prometheus-streams",
    Enum[present, absent] $ensure = "present",
    String $version = "0.0.6",
) {
    if $ensure == "present" {
        class{"prometheus_streams::install": } ->
        class{"prometheus_streams::config": } ~>
        class{"prometheus_streams::service": }
    } else {
        class{"prometheus_streams::service": } ->
        class{"prometheus_streams::install": }
    }
}