func()

in confgenerator/agentmetrics.go [110:170]


func (r AgentSelfMetrics) LoggingSubmodulePipeline() otel.ReceiverPipeline {
	return otel.ReceiverPipeline{
		Receiver: otel.Component{
			Type: "prometheus",
			Config: map[string]interface{}{
				"config": map[string]interface{}{
					"scrape_configs": []map[string]interface{}{{
						"job_name":        "logging-collector",
						"scrape_interval": "1m",
						"metrics_path":    "/metrics",
						"static_configs": []map[string]interface{}{{
							// TODO(b/196990135): Customization for the port number
							"targets": []string{fmt.Sprintf("0.0.0.0:%d", r.Port)},
						}},
					}},
				},
			},
		},
		ExporterTypes: map[string]otel.ExporterType{
			"metrics": otel.System,
		},
		Processors: map[string][]otel.Component{"metrics": {
			otel.MetricsFilter(
				"include",
				"strict",
				"fluentbit_uptime",
				"fluentbit_stackdriver_requests_total",
				"fluentbit_stackdriver_proc_records_total",
				"fluentbit_stackdriver_retried_records_total",
			),
			otel.MetricsTransform(
				otel.RenameMetric("fluentbit_uptime", "agent/uptime",
					// change data type from double -> int64
					otel.ToggleScalarDataType,
					otel.AddLabel("version", r.Version),
					// remove service.version label
					otel.AggregateLabels("sum", "version"),
				),
				otel.RenameMetric("fluentbit_stackdriver_requests_total", "agent/request_count",
					// change data type from double -> int64
					otel.ToggleScalarDataType,
					otel.RenameLabel("status", "response_code"),
					otel.AggregateLabels("sum", "response_code"),
				),
				otel.RenameMetric("fluentbit_stackdriver_proc_records_total", "agent/log_entry_count",
					// change data type from double -> int64
					otel.ToggleScalarDataType,
					otel.RenameLabel("status", "response_code"),
					otel.AggregateLabels("sum", "response_code"),
				),
				otel.RenameMetric("fluentbit_stackdriver_retried_records_total", "agent/log_entry_retry_count",
					// change data type from double -> int64
					otel.ToggleScalarDataType,
					otel.RenameLabel("status", "response_code"),
					otel.AggregateLabels("sum", "response_code"),
				),
				otel.AddPrefix("agent.googleapis.com"),
			),
		}},
	}
}