Stackdriver

Stackdriver output plugin allows to ingest your records into Google Cloud Stackdriver Logging service.

Before to get started with the plugin configuration, make sure to obtain the proper credentials to get access to the service. We strongly recommend to use a common JSON credentials file, reference link:

Your goal is to obtain a credentials JSON file that will be used later by Fluent Bit Stackdriver output plugin.

Configuration Parameters

Key

Description

default

google_service_credentials

Absolute path to a Google Cloud credentials JSON file

Value of environment variable $GOOGLE_SERVICE_CREDENTIALS

service_account_email

Account email associated to the service. Only available if no credentials file has been provided.

Value of environment variable $SERVICE_ACCOUNT_EMAIL

service_account_secret

Private key content associated with the service account. Only available if no credentials file has been provided.

Value of environment variable $SERVICE_ACCOUNT_SECRET

resource

Set resource type of data. Supported resource types: k8s_container, k8s_node, k8s_pod, global and gce_instance.

global, gce_instance

k8s_cluster_name

The name of the cluster that the container (node or pod based on the resource type) is running in. If the resource type is one of the k8s_container, k8s_node or k8s_pod, then this field is required.

k8s_cluster_location

The physical location of the cluster that contains (node or pod based on the resource type) the container. If the resource type is one of the k8s_container, k8s_node or k8s_pod, then this field is required.

labels_key

The value of this field is used by the Stackdriver output plugin to find the related labels from jsonPayload and then extract the value of it to set the LogEntry Labels.

logging.googleapis.com/labels

Configuration File

If you are using a Google Cloud Credentials File, the following configuration is enough to get started:

[INPUT]
Name cpu
Tag cpu
[OUTPUT]
Name stackdriver
Match *

Troubleshooting Notes

Upstream connection error

Github reference: #761

An upstream connection error means Fluent Bit was not able to reach Google services, the error looks like this:

[2019/01/07 23:24:09] [error] [oauth2] could not get an upstream connection

This belongs to a network issue by the environment where Fluent Bit is running, make sure that from the Host, Container or Pod you can reach the following Google end-points:

Other implementations

Stackdriver officially supports a logging agent based on Fluentd.

We plan te support some special fields in structured payloads.

Currently, we have supported operation. See some use cases of operation here.