Skip to content

SolarWinds

Anton Zelenin edited this page Apr 26, 2022 · 12 revisions

Source config

  • SolarWinds API URL - a URL to access SolarWinds API, example https://sw-api:17778
  • Username
  • Password
  • Query timeout - SolarWinds query timeout

Example:

> agent source create -a
Choose source (influx, kafka, mongo, mysql, postgres, elastic, ..., solarwinds): solarwinds
Enter a unique source name: solarwinds_1
SolarWinds API URL: https://solarwinds:17778
SolarWinds API username []: username
SolarWinds API password []: password
Query timeout (in seconds) [15]:
Source config created

Source file config

Property Type
type String
name String
config Object

All properties are required

config object properties:

Property Type Required
url String yes
username String yes
password String yes
query_timeout Integer no

Example

[
  {
  "name": "test_solarwinds",
  "type": "solarwinds",
  "config": {
    "url": "http://solarwinds:17778",
    "username": "admin",
    "password": "admin"
  }
}
]

Pipeline CLI config

  • Pipeline ID - unique pipeline identifier (use a human-readable name so you could easily use it further)
  • Query to export data from SolarWinds - Query to export data from SolarWinds
  • Delay - Collect data with a specified delay, e.g. the pipeline will retrieve data until now -(minus) delay, it will not fetch the latest data immediately
  • Collect since - Collect data starting N days ago
  • Query interval - Query data every N seconds
  • Timestamp config
    • Timestamp property name
    • Timestamp property type unix
      • string (must specify format)
      • unix_ms (unix timestamp in milliseconds)
      • unix (unix timestamp in seconds)
      • datetime date type in elasticsearch
    • Timestamp format string - if timestamp property type is string - specify format according to this spec. Test here
  • Count records - to include the number of records as a separate metric, default false
  • Name of a field containing metric value with target type. Example - field1:counter field2:gauge
  • Metric names - key-value pairs separated with spaces, format column_name:what
  • Required dimensions - Names of properties delimited with spaces. If these fields are missing in a record, it goes to the error stage. Format - dimension1 dimension2
  • Optional dimensions - Names of properties delimited with spaces. These fields may be missing in a record. Format - dimension1 dimension2
  • Static dimensions - dimensions with static values to pass to Anodot. Format - key1:value1 key2:value2
  • Tags

Example:

> agent pipeline create -a
Choose source config (solarwinds_test) [solarwinds_1]: 
Pipeline ID (must be unique): solarwinds_1
Query to export data from SolarWinds: SELECT TOP 1000 NodeID, DateTime, MinMemoryUsed, AvgPercentMemoryUsed FROM Orion.CPULoad WHERE {TIMESTAMP_CONDITION}
Delay (in minutes): 5
Collect since (days ago) []: 3
Query interval (in seconds): 300
Timestamp property name: DateTime
Timestamp property type: string
Timestamp format string: yyyy-MM-dd'T'HH:mm:ss
Count records?: n
Name of a field containing metric value with target type. Example - field1:counter field2:gauge: MinMemoryUsed:gauge AvgPercentMemoryUsed:gauge
Metric names. Example - field1:new_name1 field2:new_name2: MinMemoryUsed:MinMemoryUsed AvgPercentMemoryUsed:AvgPercentMemoryUsed
Required dimensions: NodeID
Optional dimensions:
Static dimensions:
Tags:
Created pipeline solarwinds_1
Would you like to see the result data preview? [Y/n]: n

Pipeline File config

Properties list

Required Property name in config file Value type Description
yes source String Source name
yes pipeline_id String Unique human-readable pipeline identifier
yes query String A MySQL query to fetch data from SolarWinds databse
no days_to_backfill Integer Collect data starting N days ago
yes interval Integer How often to read the data from rrd files, unit - seconds
no delay Integer Amount of time to wait before fetching data, units - seconds
yes timestamp Object with key-value pairs
no count_records Boolean
yes values Object with key-value pairs
yes measurement_names Object with key-value pairs
no dimensions Object with key-value pairs Names of columns that will be used as dimensions, columns may only be strings
no tags Object with key-value pairs Metric tags
no properties Object with key-value pairs Dimensions with static values to pass to Anodot

timestamp object properties:

Property Type Description
type String string, unix or unix_ms
name String Property name
format String Specify format if timestamp type is string

Required properties are type and name

dimensions object properties:

Property Type Description
required List of strings These properties are always present in a record
optional List of strings These properties may be missing in a record

Examples

Simple:

[{
  "source": "solarwinds_file",
  "pipeline_id": "solarwinds_file",
  "query": "SELECT TOP 1000 NodeID, DateTime, Archive, MinLoad, MaxLoad, AvgLoad, TotalMemory, MinMemoryUsed, MaxMemoryUsed, AvgMemoryUsed, AvgPercentMemoryUsed FROM Orion.CPULoad WHERE {TIMESTAMP_CONDITION}",
  "delay": 0,
  "days_to_backfill": 0,
  "interval": 60,
  "timestamp": {
    "name": "DateTime",
    "type": "string",
    "format": "yyyy-MM-dd'T'HH:mm:ss"
  },
  "count_records": false,
  "values": {
    "MinMemoryUsed": "gauge",
    "AvgPercentMemoryUsed": "gauge"
  },
  "measurement_names": {
    "MinMemoryUsed": "MinMemoryUsed",
    "AvgPercentMemoryUsed": "AvgPercentMemoryUsed"
  },
  "dimensions": {
    "required": ["NodeID"],
    "optional": []
  }
}]
Clone this wiki locally