in confgenerator/confgenerator.go [401:449]
func (uc *UnifiedConfig) generateFluentbitComponents(ctx context.Context, userAgent string) ([]fluentbit.Component, error) {
l := uc.Logging
var out []fluentbit.Component
if l.Service.LogLevel == "" {
l.Service.LogLevel = "info"
}
service := fluentbit.Service{LogLevel: l.Service.LogLevel}
out = append(out, service.Component())
out = append(out, fluentbit.MetricsInputComponent())
if l != nil && l.Service != nil && !l.Service.OTelLogging {
// Type for sorting.
var sources []fbSource
var tags []string
pipelines, err := uc.Pipelines(ctx)
if err != nil {
return nil, err
}
for _, pipeline := range pipelines {
if pipeline.backend != backendFluentBit {
continue
}
source, err := pipeline.fluentBitComponents(ctx)
if err != nil {
return nil, err
}
sources = append(sources, source)
tags = append(tags, source.tagRegex)
}
sort.Slice(sources, func(i, j int) bool { return sources[i].tagRegex < sources[j].tagRegex })
sort.Strings(tags)
for _, s := range sources {
out = append(out, s.components...)
}
if len(tags) > 0 {
out = append(out, stackdriverOutputComponent(ctx, strings.Join(tags, "|"), userAgent, "2G", l.Service.Compress))
}
out = append(out, uc.generateSelfLogsComponents(ctx, userAgent)...)
out = append(out, addGceMetadataAttributesComponents(ctx, []string{
"dataproc-cluster-name",
"dataproc-cluster-uuid",
"dataproc-region",
}, "*", "default-dataproc")...)
}
out = append(out, fluentbit.MetricsOutputComponent())
return out, nil
}