Skip to content

[exporter/file]: Allow creating output directory, if it doesn't exist #44280

@pavel-penev-hms

Description

@pavel-penev-hms

Component(s)

No response

Is your feature request related to a problem? Please describe.

As a system administrator, I want to be able to run OTelCol with the fileexporter plugin by just installing otelcol-contrib, and updating configuration files. (Both of these are standard with administration automation, whether using Ansible, or other tools.)

It would be nice to not have to figure out what directories referenced in config.yaml need to be created before starting the otelcol-contrib service.

Notes

Currently, fileexporter fails to start, if the directory in the path parameter doesn't exist.

E.g., with the following exporters section in config.yaml:

exporters:
  # See https://opentelemetry.io/docs/specs/otel/protocol/file-exporter/#telemetry-data-requirements
  # for file format. https://aws-otel.github.io/docs/components/misc-exporters#file-exporter for
  # configuration options.
  file/logs:
    path: "/some/path/log.jsonl"

You may see:

failed to start service: cannot start pipelines: failed to start "file/logs" exporter: open /some/path/log.jsonl: The system cannot find the path specified.

Describe the solution you'd like

Have an option like create_directory (and, possibly, directory_permissions) in the
files_torage plug-in.

Describe alternatives you've considered

Figuring out what directories need to be created before installing the otelcol-contrib service, and keeping them synchronized with config.yaml.

Additional context

This is just a convenience improvement.

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions