SolarWinds

The solarwinds adapter enables Istio to deliver log and metric data to the Papertrail logging backend and the AppOptics monitoring backend.

This adapter supports the metric template and the logentry template.

Params

Configuration format for the solarwinds adapter.

Example config usage:

apiVersion: "config.istio.io/v1alpha2"
kind: handler
metadata:
  name: solarwinds
  namespace: istio-system
spec:
  compiledAdapter: solarwinds
  params:
    appoptics_access_token: <APPOPTICS SAMPLE TOKEN>
    papertrail_url: <PAPERTRAIL URL>
    papertrail_local_retention_duration: <RETENTION PERIOD FOR LOGS LOCALLY, Optional>
    metrics:
      requestcount.metric.istio-system:
        label_names:
        - source_service
        - source_version
        - destination_service
        - destination_version
        - response_code
      requestduration.metric.istio-system:
        label_names:
        - source_service
        - source_version
        - destination_service
        - destination_version
        - response_code
      requestsize.metric.istio-system:
        label_names:
        - source_service
        - source_version
        - destination_service
        - destination_version
        - response_code
      responsesize.metric.istio-system:
        label_names:
        - source_service
        - source_version
        - destination_service
        - destination_version
        - response_code
      tcpbytesent.metric.istio-system:
        label_names:
        - source_service
        - source_version
        - destination_service
        - destination_version
      tcpbytereceived.metric.istio-system:
        label_names:
        - source_service
        - source_version
        - destination_service
        - destination_version
    logs:
      solarwindslogentry.logentry.istio-system:
        payloadTemplate: '{{or (.originIp) "-"}} - {{or (.sourceUser) "-"}} [{{or (.timestamp.Format "2006-01-02T15:04:05Z07:00") "-"}}] "{{or (.method) "-"}} {{or (.url) "-"}} {{or (.protocol) "-"}}" {{or (.responseCode) "-"}} {{or (.responseSize) "-"}}'
FieldTypeDescription
appopticsAccessTokenstring

AppOptics Access Token needed to send metrics to AppOptics. If no access token is given then metrics will NOT be shipped to AppOptics

appopticsBatchSizeint32

Optional. Max batch size of metrics to be sent to AppOptics. AppOptics does not allow batch size greater than 1000. If this is unspecified or given a value 0 explicitly, a default batch size of 1000 will be used.

papertrailUrlstring

Papertrail url to ship logs to. If no papertrail url is given then the logs will NOT be shipped but rather dropped.

papertrailLocalRetentionDurationgoogle.protobuf.Duration

This is the duration for which logs will be persisted locally until it is shipped to papertrail in the event of a network failure. Default value is 1 hour.

metricsmap<string, Params.MetricInfo>

A map of Istio metric name to solarwinds metric info.

logsmap<string, Params.LogInfo>

A map of Istio logentry name to solarwinds log info.

Params.LogInfo

Describes how to represent an Istio log entry in Solarwinds AppOptics

FieldTypeDescription
payloadTemplatestring

Optional. A golang text/template template (more details about golang text/template’s templating can be found here: https://golang.org/pkg/text/template/) that will be executed to construct the payload for this log entry. An example template that could be used: {{or (.originIp) “-”}} - {{or (.sourceUser) “-”}} [{{or (.timestamp.Format “2006-01-02T15:04:05Z07:00”) “-”}}] “{{or (.method) “-”}} {{or (.url) “-”}} {{or (.protocol) “-”}}” {{or (.responseCode) “-”}} {{or (.responseSize) “-”}} A sample log that will be created after parsing the template with appropriate variables will look like this: Jan 23 21:53:02 istio-mixer-57d88dc4b4-rbgmc istio: 10.32.0.15 - kubernetes://istio-ingress-78545c5bc9-wbr6g.istio-system [2018-01-24T02:53:02Z] “GET /productpage http” 200 5599 It will be given the full set of variables for the log to use to construct its result. If it is not provided, a default template in place will be used.

Params.MetricInfo

Describes how to represent an Istio metric in Solarwinds AppOptics

FieldTypeDescription
labelNamesstring[]

The names of labels to use: these need to match the dimensions of the Istio metric.