Pull Consumers

Use this section to find example declarations and notes for pull-based monitoring systems. See Push Consumers for push-based consumers.

About Pull Consumers

Telemetry Streaming 1.11 introduces a pull consumer to support pull-based monitoring systems using a new class called Telemetry_Pull_Consumer. External systems can use this Pull API to pull/scrape for metrics.

  • You can only pull data from Systems and/or System Pollers that are already defined through a Telemetry Streaming declaration.
  • With TS 1.11, you can set a Telemetry_System_Poller interval=0. This disables the background polling process, but keeps the Poller enabled. Using interval=0 on a Poller allows for the Poller to only collect data from a BIG-IP when the Pull Consumer API endpoint is scraped, so that the Poller doesn’t collect data from a BIG-IP when it is not needed.
  • If a Poller is used for both a Pull Consumer and a Push Consumer, the interval will need to be set to a non-zero number of seconds, so that the background polling process will collect data and push it to the configured Push Consumers.
  • Each Pull Consumer must reference, via the systemPoller property, which Telemetry_System_Poller the Pull Consumer will collect data from when the Pull Consumer HTTP API is called. This can be configured as a single systemPoller, or as an array of systemPollers, using the name of the configured System Poller


Default Pull Consumer

This example shows how to use the default pull consumer. For the default pull consumer, the type must be default in the Pull Consumer class as shown.

See Telemetry_Pull_Consumer in the Schema Reference for usage information.

URL format: /mgmt/shared/telemetry/pullconsumer/<pull_consumer_name>

Example CURL call: GET /mgmt/shared/telemetry/pullconsumer/My_Pull_Consumer

Example declaration:

{
    "class": "Telemetry",
    "My_Poller": {
        "class": "Telemetry_System_Poller",
        "interval": 0
    },
    "My_System": {
        "class": "Telemetry_System",
        "enable": "true",
        "systemPoller": ["My_Poller"]
    },
    "My_Pull_Consumer": {
        "class": "Telemetry_Pull_Consumer",
        "type": "default",
        "systemPoller": ["My_Poller"]
    }
}