in apps/vault.go [78:178]
func (r MetricsReceiverVault) Pipelines(_ context.Context) ([]otel.ReceiverPipeline, error) {
if r.Endpoint == "" {
r.Endpoint = defaultVaultEndpoint
}
if r.MetricsPath == "" {
r.MetricsPath = defaultVaultMetricsPath
}
if r.Scheme == "" {
r.Scheme = defaultVaultScheme
}
tlsConfig := r.TLSConfig(true)
scrapeConfig := map[string]interface{}{
"job_name": "vault",
"scrape_interval": r.CollectionIntervalString(),
"metrics_path": r.MetricsPath,
"static_configs": []map[string]interface{}{{
"targets": []string{r.Endpoint},
}},
"scheme": r.Scheme,
}
if r.Token != "" {
scrapeConfig["authorization"] = map[string]interface{}{
"credentials": r.Token.SecretValue(),
"type": "Bearer",
}
}
if tlsConfig["insecure"] == false {
scrapeConfig["scheme"] = "https"
}
delete(tlsConfig, "insecure")
scrapeConfig["tls_config"] = tlsConfig
includeMetrics := []string{}
queries := []otel.TransformQuery{}
storageMetricTransforms, newStorageMetricNames := r.addStorageMetrics()
metricRenewRevokeTransforms, newRenewRevokeNames := r.getSummarySumMetricsTransforms()
metricDetailTransforms, newMetricNames := r.getMetricTransforms()
includeMetrics = append(includeMetrics, newStorageMetricNames...)
includeMetrics = append(includeMetrics, newMetricNames...)
includeMetrics = append(includeMetrics, newRenewRevokeNames...)
queries = append(queries, storageMetricTransforms...)
queries = append(queries, metricRenewRevokeTransforms...)
queries = append(queries, metricDetailTransforms...)
return []otel.ReceiverPipeline{{
Receiver: otel.Component{
Type: "prometheus",
Config: map[string]interface{}{
"config": map[string]interface{}{
"scrape_configs": []map[string]interface{}{
scrapeConfig,
},
},
},
},
Processors: map[string][]otel.Component{"metrics": {
otel.TransformationMetrics(queries...),
otel.MetricsFilter(
"include",
"strict",
includeMetrics...,
),
// This is currently needed along side the newer transform processor as the new processor doesn't currently support toggling scalar data types.
// Issue: https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/11810
otel.MetricsTransform(
otel.UpdateMetric(
"vault.audit.response.failed",
otel.ToggleScalarDataType,
),
otel.UpdateMetric(
"vault.audit.request.failed",
otel.ToggleScalarDataType,
),
otel.UpdateMetric(
"vault.token.lease.count",
otel.ToggleScalarDataType,
),
otel.UpdateMetric(
"vault.token.count",
otel.ToggleScalarDataType,
),
otel.UpdateMetric(
"vault.core.request.count",
otel.ToggleScalarDataType,
),
),
otel.NormalizeSums(),
otel.MetricsTransform(
otel.AddPrefix("workload.googleapis.com"),
),
otel.ModifyInstrumentationScope(r.Type(), "1.0"),
}},
}}, nil
}