Quick Start

If you are familiar with the BIG-IP system, and generally familiar with REST and using APIs, this section contains the minimum amount of information to get you up and running with Telemetry Streaming.

  1. Download the latest RPM package from the Release Assets on GitHub.
  2. Upload and install the RPM package on the using the BIG-IP GUI:
  3. Be sure to see the known issues on GitHub (https://github.com/F5Networks/f5-telemetry-streaming/issues) to review any known issues and other important information before you attempt to use Telemetry Streaming.
  4. Provide authorization (basic auth) to the BIG-IP system:
  5. Using a RESTful API client like Postman, send a GET request to the URI https://{{host}}/mgmt/shared/telemetry/info to ensure Telemetry Streaming is running properly.
  6. Copy one of the Example Declarations which best matches the configuration you want to use. Alternatively, you can use the simple “Hello World” example below, which is a good start if you don’t have an example in mind.
  7. Paste the declaration into your API client, and modify names and IP addresses as applicable.
  8. POST to the URI https://<BIG-IP>/mgmt/shared/telemetry/declare

Quick Start Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
    "class": "Telemetry",
    "My_System": {
        "class": "Telemetry_System",
        "systemPoller": {
            "interval": 60
        }
    },
    "My_Listener": {
        "class": "Telemetry_Listener",
        "port": 6514
    },
    "My_Consumer": {
        "class": "Telemetry_Consumer",
        "type": "Splunk",
        "host": "192.0.2.1",
        "protocol": "https",
        "port": 8088,
        "passphrase": {
            "cipherText": "apikey"
        }
    }
}

Components of the declaration

This section provides more information about the options in the Quick Start example, and breaks down the example declaration into each class so you can understand the options when composing your declaration. The tables below the examples contain descriptions and options for the parameters included in this example only.

For a list of all the Telemetry Streaming classes and options, see Using Telemetry Streaming.

If there is a default value, it is shown in bold in the Options column.

Base components

The first few lines of your declaration are a part of the base components and define top-level options. When you POST a declaration, depending on the complexity of your declaration and the modules you are provisioning, it may take some time before the system returns a success message. Note that the controls class is optional and used for logging and debugging (see Logging).

1
2
3
4
5
6
 {
     "class": "Telemetry",
     "controls": {
         "class": "Controls",
         "logLevel": "info"
     },

Parameter Options Description/Notes
class Controls Describes top-level Telemetry Streaming options. The optional class for controls must always be Controls, do not change this value. Controls are for logging and debugging.
logLevel info, debug, error This value determines how much information you want Telemetry Streaming to log. See the Logging section for more information.

Telemetry System class

The next lines of the declaration define the target system. You can define and configure the system poller inside of the System declaration to collect and normalize statistics. These statistics include device statistics, virtual server statistics, pool statistics, individual pool member statistics, and more. For more information, including an optional iHealth poller, see Telemetry System class.

 7
 8
 9
10
11
12
 "My_System": {
     "class": "Telemetry_System",
     "systemPoller": {
         "interval": 60
     }
 },

Parameter Options Description/Notes
class Telemetry_System The class for Telemetry System must always be Telemetry_System, do not change this value.
systemPoller systemPoller This value Polls a system on a defined interval for information such as device statistics, virtual server statistics, pool statistics and much more.

Telemetry Listener class

The next lines of the declaration sets the Event Listener, on both TCP and UDP protocols, that can accept events in a specific format and process them. Currently, the TS Listener sends all logging telemetry data. To see the type of information that the event listener processes, see Example Output. Event Format: key1="value",key2="value"

13
14
15
16
 "My_Listener": {
     "class": "Telemetry_Listener",
     "port": 6514
 },

Parameter Options Description/Notes
class Telemetry_Listener The class for listener must always be Telemetry_Listener, do not change this value.
port 6514 Specifies the port of the TCP and UDP listener

Telemetry Consumer class

The next lines of the declaration sets the Consumer, which accepts all telemetry information from whatever systems you configure it to. The consumer provides the tools to process that information. To see examples of configurations for consumers like Splunk, Azure Log Analytics, AWS CloudWatch, AWS S3, Graphite, and others, see the Consumer class section of this guide.

17
18
19
20
21
22
23
24
25
26
 "My_Consumer": {
     "class": "Telemetry_Consumer",
     "type": "Splunk",
     "host": "192.0.2.1",
     "protocol": "https",
     "port": "8088",
     "passphrase": {
         "cipherText": "apikey"
     }
 }

Parameter Options Description/Notes
class Telemetry_Consumer The class for consumer must always be Telemetry_Consumer, do not change this value.
type Splunk, AWS_S3, etc. Specifies the consumer type you would like to send Telemetry information to. See the Consumer class section for more information.
host 192.0.2.1 The address of the instance that runs the HTTP event collector
protocol http, https The protocol of the consumer
port 8088 The port of the consumer system
passphrase xxxxx The secret password to use when sending data to the consumer system