Stackdriver

    This adapter supports the metric template, the , and the tracespan template.

    Configuration format for the stackdriver adapter.

    Params.LogInfo

    Describes how to represent an Istio Log in Stackdriver.

    FieldTypeDescriptionRequired
    labelNamesstring[]

    The logging template provides a set of variables; these list the subset of variables that should be used to form Stackdriver labels for the log entry.

    No
    payloadTemplatestring

    A golang text/template template that will be executed to construct the payload for this log entry. It will be given the full set of variables for the log to use to construct its result.

    No
    httpMappingHttpRequestMapping

    If an HttpRequestMapping is provided, a HttpRequest object will be filled out for this log entry using the variables named in the mapping to populate the fields of the request struct from the instance’s variables.

    No
    sinkInfo

    If SinkInfo is provided, Stackriver logs would be exported to that sink.

    No

    Params.LogInfo.HttpRequestMapping

    Maps from template variable names to the various fields of Stackdriver’s HTTP request struct. See

    FieldTypeDescriptionRequired
    statusstring

    template variable name to map into HTTPRequest.Status

    No
    requestSizestring

    template variable name to map into HTTPRequest.RequestSize

    No
    responseSizestring

    template variable name to map into HTTPRequest.ResponseSize

    No
    latencystring

    template variable name to map into HTTPRequest.Latency

    No
    localIpstring

    template variable name to map into HTTPRequest.LocalIP

    No
    remoteIpstring

    template variable name to map into HTTPRequest.RemoteIP

    No
    url

    template variable name to map into HTTPRequest.Request.Url

    No
    methodstringNo
    userAgentstring

    template variable name to map into HTTPRequest.UserAgent

    No
    refererstring

    template variable name to map into HTTPRequest.Referer

    No

    Params.LogInfo.SinkInfo

    Contains information about sink to export Stackdriver logs to. See . Ex: If you want to export it to a GCS bucket, id would be a unique idetifier you want for the sink, destination would be the storage be name of GCS Storage bucket and filter would be user defined condition for filtering logs. See below for a sample config:

    FieldTypeDescriptionRequired
    idstring

    Client assigned sink identifier.

    No
    destinationstring

    Export Destination.

    No
    filterstring

    Filter that specifies any filtering to be done on logs.

    No
    UniqueWriterIdentitybool

    Determines the kind of IAM identity returned as WriterIdentity in the new sink. If this value is omitted or set to false, and if the sink’s parent is a project, then the value returned as WriterIdentity is the same group or service account used by Stackdriver Logging before the addition of writer identities to the API. The sink’s destination must be in the same project as the sink itself.

    If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of WriterIdentity will be a unique service account used only for exports from the new sink.

    No
    UpdateDestinationbool

    These fields apply only to UpdateSinkOpt calls. The corresponding sink field is updated if and only if the Update field is true. Upate sink destination.

    No
    UpdateFilterbool

    Update sink filter.

    No
    UpdateIncludeChildrenbool

    Update includes children.

    No

    Describes how to represent an Istio metric in Stackdriver. See https://github.com/googleapis/googleapis/blob/master/google/api/metric.proto

    Params.MetricInfo.BucketsDefinition

    Describes buckets for DISTRIBUTION valued metrics. TODO: look into using google.api.distribution.proto instead - we would pull it in but it has a ton of dependencies it doesn’t actually use.

    FieldTypeDescriptionRequired
    linearBucketsLinear (oneof)

    The linear buckets.

    Yes
    exponentialBuckets

    The exponential buckets.

    Yes
    explicitBucketsExplicit (oneof)

    The explicit buckets.

    Yes

    Params.MetricInfo.BucketsDefinition.Explicit

    Specifies a set of buckets with arbitrary widths.

    There are size(bounds) + 1 (= N) buckets. Bucket i has the following boundaries:

    • Upper bound (0 <= i < N-1): bounds[i]
    • Lower bound (1 <= i < N): bounds[i - 1]

    The bounds field must contain at least one element. If has only one element, then there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets.

    FieldTypeDescriptionRequired
    boundsdouble[]

    The values must be monotonically increasing.

    No

    Params.MetricInfo.BucketsDefinition.Exponential

    Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.

    Bucket i has the following boundaries:

    • Upper bound (0 <= i < N-1): scale * (growth_factor ^ i)
    • Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1))
    FieldTypeDescriptionRequired
    numFiniteBucketsint32

    Must be greater than 0.

    No
    growthFactordouble

    Must be greater than 1.

    No
    scaledouble

    Must be greater than 0.

    No

    Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.

    There are num_finite_buckets + 2 (= N) buckets. The two additional buckets are the underflow and overflow buckets.

    Bucket i has the following boundaries:

    • Upper bound (0 <= i < N-1): offset + (width * i)

    Params.Trace

    Details of Stackdriver Trace configuration for tracespan template.

    FieldTypeDescriptionRequired
    sampleProbabilitydouble

    Proability that a particular trace ID will be sampled.

    No

    google.api.MetricDescriptor.MetricKind

    The kind of measurement. It describes how the data is reported.

    NameDescription
    METRIC_KIND_UNSPECIFIED

    Do not use this default value.

    GAUGE

    An instantaneous measurement of a value.

    DELTA

    The change in a value during a time interval.

    CUMULATIVE

    A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.

    google.api.MetricDescriptor.ValueType

    The value type of a metric.

    NameDescription
    VALUE_TYPE_UNSPECIFIED

    Do not use this default value.

    BOOL

    The value is a boolean. This value type can be used only if the metric kind is GAUGE.

    INT64

    The value is a signed 64-bit integer.

    DOUBLE

    The value is a double precision floating point number.

    STRING

    The value is a text string. This value type can be used only if the metric kind is GAUGE.

    DISTRIBUTION

    The value is a Distribution.

    MONEY

    The value is money.