Configuration of the extension is simple.
file_storage:
file_storage/all_settings:
directory: /var/lib/otelcol/mydir
timeout: 2s
The extension is made available to component’s via the host parameter in their Start method:
func (r *receiver) Start(ctx context.Context, host component.Host) error {
for _, ext := range host.GetExtensions() {
if se, ok := ext.(storage.Extension); ok {
client, err := se.GetClient(ctx, component.KindReceiver, r.NamedEntity)
if err != nil {
return err
}
r.storageClient = client
return nil
}
}
r.storageClient = storage.NewNopClient()
...
}
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/3087