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:

  1. apiVersion: "config.istio.io/v1alpha2"
  2. kind: handler
  3. metadata:
  4. name: solarwinds
  5. namespace: istio-system
  6. spec:
  7. compiledAdapter: solarwinds
  8. params:
  9. appoptics_access_token: <APPOPTICS SAMPLE TOKEN>
  10. papertrail_url: <PAPERTRAIL URL>
  11. papertrail_local_retention_duration: <RETENTION PERIOD FOR LOGS LOCALLY, Optional>
  12. metrics:
  13. requestcount.metric.istio-system:
  14. label_names:
  15. - source_service
  16. - source_version
  17. - destination_service
  18. - destination_version
  19. - response_code
  20. requestduration.metric.istio-system:
  21. label_names:
  22. - source_service
  23. - source_version
  24. - destination_service
  25. - destination_version
  26. - response_code
  27. requestsize.metric.istio-system:
  28. label_names:
  29. - source_service
  30. - source_version
  31. - destination_service
  32. - destination_version
  33. - response_code
  34. responsesize.metric.istio-system:
  35. label_names:
  36. - source_service
  37. - source_version
  38. - destination_service
  39. - destination_version
  40. - response_code
  41. tcpbytesent.metric.istio-system:
  42. label_names:
  43. - source_service
  44. - source_version
  45. - destination_service
  46. - destination_version
  47. tcpbytereceived.metric.istio-system:
  48. label_names:
  49. - source_service
  50. - source_version
  51. - destination_service
  52. - destination_version
  53. logs:
  54. solarwindslogentry.logentry.istio-system:
  55. payloadTemplate: '{{or (.originIp) "-"}} - {{or (.sourceUser) "-"}} [{{or (.timestamp.Format "2006-01-02T15:04:05Z07:00") "-"}}] "{{or (.method) "-"}} {{or (.url) "-"}} {{or (.protocol) "-"}}" {{or (.responseCode) "-"}} {{or (.responseSize) "-"}}'
FieldTypeDescriptionRequired
appopticsAccessTokenstring

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

No
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.

No
papertrailUrlstring

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

No
papertrailLocalRetentionDurationDuration

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.

No
metricsmap<string, MetricInfo>

A map of Istio metric name to solarwinds metric info.

No
logsmap<string, LogInfo>

A map of Istio logentry name to solarwinds log info.

No

Params.LogInfo

Describes how to represent an Istio log entry in Solarwinds AppOptics

FieldTypeDescriptionRequired
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.

No

Params.MetricInfo

Describes how to represent an Istio metric in Solarwinds AppOptics

FieldTypeDescriptionRequired
labelNamesstring[]

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

No