Skip to content

Instantly share code, notes, and snippets.

@focrensh
Last active May 20, 2021 18:50
Show Gist options
  • Save focrensh/2abe8a21822b873773345f3096270ab3 to your computer and use it in GitHub Desktop.
Save focrensh/2abe8a21822b873773345f3096270ab3 to your computer and use it in GitHub Desktop.
ts_json
#Logging Setup
create ltm rule telemetry_local_rule
when CLIENT_ACCEPTED {
node 127.0.0.1 6514
}
create ltm rule telemetry_local_rule when CLIENT_ACCEPTED { node 127.0.0.1 6514 }
create ltm virtual telemetry_local { destination 255.255.255.254:6514 rules { telemetry_local_rule } source-address-translation { type automap } }
create ltm pool telemetry monitor tcp members replace-all-with { 255.255.255.254:6514 }
#Logging Profiles
create sys log-config destination remote-high-speed-log telemetry_hsl protocol tcp pool-name telemetry
create sys log-config destination splunk telemetry_formatted forward-to telemetry_hsl
create sys log-config publisher telemetry_publisher destinations replace-all-with { telemetry_formatted }
#AVR Setup
modify analytics global-settings { external-logging-publisher /Common/telemetry_publisher offbox-protocol hsl use-offbox enabled }
#HTTP Analytics
create ltm profile analytics telemetry-http-analytics { collect-geo enabled collect-http-timing-metrics enabled collect-ip enabled collect-max-tps-and-throughput enabled collect-methods enabled collect-page-load-time enabled collect-response-codes enabled collect-subnets enabled collect-url enabled collect-user-agent enabled collect-user-sessions enabled publish-irule-statistics enabled }
modify ltm virtual <VIRTUAL_SERVER_NAME> profiles add { telemetry-http-analytics { context all } }
# ts.json
{
"class": "Telemetry",
"Poller": {
"class": "Telemetry_System_Poller",
"interval": 60,
"enable": true,
"trace": false,
"allowSelfSignedCert": true,
"host": "localhost",
"port": 8100,
"protocol": "http"
},
"Beacon_Consumer": {
"class": "Telemetry_Consumer",
"type": "Generic_HTTP",
"host": "ingestion.ovr.prd.f5aas.com",
"protocol": "https",
"port": 50443,
"path": "/beacon/v1/ingest-telemetry-streaming",
"method": "POST",
"enable": true,
"trace": false,
"headers": [
{
"name": "grpc-metadata-x-f5-ingestion-token",
"value": "`>@/passphrase`"
}
],
"passphrase": {
"cipherText": "F5 Beacon Access Token"
}
},
"My_Listener": {
"port": 6514,
"class": "Telemetry_Listener",
"enable": true,
"trace": false,
"match": ""
},
"schemaVersion": "1.0.0"
}
curl -vX POST -u admin: http://localhost:8100/mgmt/shared/telemetry/declare -d @ts.json \
--header "Content-Type: application/json"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment