Skip to content

datadog_agent::integrations::haproxy add support for multiple urls #206

@den-is

Description

@den-is

I have HAproxy instances running multiple processes so there is no single/global stats service, but number os stats listners one per process.

Example manual configuration of datadog-agent configuration:

instances:
  - url: http://localhost:9001/;csv;norefresh
    collect_aggregates_only: False
  - url: http://localhost:9002/;csv;norefresh
    collect_aggregates_only: False
  - url: http://localhost:9003/;csv;norefresh
    collect_aggregates_only: False
  - url: http://localhost:9004/;csv;norefresh
    collect_aggregates_only: False
  - url: http://localhost:9005/;csv;norefresh
    collect_aggregates_only: False
  - url: http://localhost:9006/;csv;norefresh
    collect_aggregates_only: False

At least it would nice to supply list of urls:
["http://127.0.0.1:9001", "http://127.0.0.1:9002", "http://127.0.0.1:9003"]

But it is a little bit ugly.
Better solution might be to declare integrations as puppet resources definitions
Which will allow dynamic creation of multiple, same, needed resources/configurations:
Check example:

  range('1', $nbproc).each |$procnum| {
    haproxy::listen { "stats${procnum}":
      bind    => {
        "0.0.0.0:900${procnum}"  => [],
      },
      ...
    }

    # SPECULATIONS
    datadog_agent::integrations::haproxy { "127.0.0.1:900${procnum}":
      url_options => ["csv", "norefresh"],
      options => {
        'collect_aggregates_only' => 'False',
      }
    }
    # END OF SPECULATIONS
  }

Not sure if i should open another issue for thing below:
it will be nice to supply integration with additional parameters as shown in manual config: ...;csv;norefresh, collect_aggregates_only: False

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions