Documentation ¶
Overview ¶
Package observability sets up and configures observability tools.
Package observability sets up and configures observability tools.
Package observability sets up and configures observability tools.
Package observability sets up and configures observability tools.
Index ¶
Constants ¶
const OCSQLDriverName = "ocsql"
OCSQLDriverName is the name of the SQL driver wrapped by OpenCensus instrumentation code.
Variables ¶
This section is empty.
Functions ¶
func CollectViews ¶ added in v0.11.1
CollectViews collects all the OpenCensus views and register at a later time when we setup the metric exporter. This is mainly to be able to "register" the views in a module's init(), but still be able to handle the errors correctly. Typical usage: var v = view.View{...}
func init() { observability.ColectViews(v) }
// Actual view registration happens in exporter.StartExporter().
func NewStackdriverMonitoredResource ¶ added in v0.6.0
func NewStackdriverMonitoredResource(ctx context.Context, c *StackdriverConfig) monitoredresource.Interface
NewStackdriverMonitoredResource returns a monitored resource with the required labels filled out. This needs to be the correct resource type so we can compared the default stackdriver metrics with the custom metrics we're generating.
NOTE: This code is focused on support GCP Cloud Run Managed. If you are running in a different environment, you may see weird results.
Types ¶
type Config ¶
type Config struct { ExporterType ExporterType `env:"OBSERVABILITY_EXPORTER, default=STACKDRIVER"` OpenCensus *OpenCensusConfig Stackdriver *StackdriverConfig }
Config holds all of the configuration options for the observability exporter
type Exporter ¶
Exporter defines the minimum shared functionality for an observability exporter used by this application.
func NewFromEnv ¶
NewFromEnv returns the observability exporter given the provided configuration, or an error if it failed to be created.
func NewOpenCensus ¶
func NewOpenCensus(ctx context.Context, config *OpenCensusConfig) (Exporter, error)
NewOpenCensus creates a new metrics and trace exporter for OpenCensus.
func NewStackdriver ¶
func NewStackdriver(ctx context.Context, config *StackdriverConfig) (Exporter, error)
NewStackdriver creates a new metrics and trace exporter for Stackdriver.
type ExporterType ¶
type ExporterType string
ExporterType represents a type of observability exporter.
const ( ExporterStackdriver ExporterType = "STACKDRIVER" ExporterPrometheus ExporterType = "PROMETHEUS" ExporterOCAgent ExporterType = "OCAGENT" ExporterNoop ExporterType = "NOOP" )
type OpenCensusConfig ¶
type OpenCensusConfig struct { SampleRate float64 `env:"TRACE_PROBABILITY, default=0.40"` Insecure bool `env:"OCAGENT_INSECURE"` Endpoint string `env:"OCAGENT_TRACE_EXPORTER_ENDPOINT"` }
OpenCensusConfig holds the configuration options for the open census exporter
type StackdriverConfig ¶
type StackdriverConfig struct { SampleRate float64 `env:"TRACE_PROBABILITY, default=0.40"` ProjectID string `env:"PROJECT_ID, default=$GOOGLE_CLOUD_PROJECT"` // Knative+Cloud Run container contract envvars: // // https://cloud.google.com/run/docs/reference/container-contract#env-vars // // If present, can be used to configured the Stackdriver MonitoredResource // correctly. Service string `env:"K_SERVICE"` Revision string `env:"K_REVISION"` Namespace string `env:"K_CONFIGURATION, default=en"` // Allows for providing a real Google Cloud location when running locally for development. // This is ignored if a real location was found during discovery. LocationOverride string `env:"DEV_STACKDRIVER_LOCATION"` // The following options are mostly for tuning the metrics reporting // behavior. You normally should not change these values. // ReportingInterval: should be >=60s as stackdriver enforces 60s minimal // interval. // BundleDelayThreshold / BundleCountThreshold: the stackdriver exporter // uses https://google.golang.org/api/support/bundler, these two options // control the max delay/count for batching the data points into one // stackdriver request. ReportingInterval time.Duration `env:"STACKDRIVER_REPORTING_INTERVAL, default=2m"` BundleDelayThreshold time.Duration `env:"STACKDRIVER_BUNDLE_DELAY_THRESHOLD, default=2s"` BundleCountThreshold uint `env:"STACKDRIVER_BUNDLE_COUNT_THRESHOLD, default=50"` Timeout time.Duration `env:"STACKDRIVER_TIMEOUT, default=1m"` // The Cloud Run services are exporting many metrics that we get for free // from the OpenCensus libaries. You can control whether to exclude some of // them using the option below. // Specify them using comma separated strings in envvar. ExcludedMetricPrefixes []string `env:"STACKDRIVER_EXCLUDED_METRIC_PREFIXES"` }
StackdriverConfig holds the configuration options for the stackdriver exporter