fix(otel): let file_storage extension create its own directory
validateConfigFile runs `otelcol validate` at nix build time, in a pure sandbox where systemd's StateDirectory= has not run yet, so the directory named by extensions.file_storage.directory does not exist. Setting create_directory = true lets the validator create it itself, matching what happens at runtime once StateDirectory= has acted. Refs #4375 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
93f2988e1d
commit
6de28514cd
1 changed files with 9 additions and 1 deletions
|
|
@ -234,7 +234,15 @@ in
|
|||
# host-persisted state bind mount: it indexes /var/log/journal,
|
||||
# itself fresh on every container recreate, so the two must share
|
||||
# a lifetime or the cursor outlives the journal it points into.
|
||||
extensions.file_storage.directory = "/var/lib/opentelemetry-collector";
|
||||
# `create_directory` matters here for a build-time-vs-runtime
|
||||
# reason, not a convenience one: `validateConfigFile` above runs
|
||||
# `otelcol validate` in the nix build sandbox, before systemd's
|
||||
# `StateDirectory=` has ever created this path. Without it the
|
||||
# validator refuses with "directory must exist" and the build fails.
|
||||
extensions.file_storage = {
|
||||
directory = "/var/lib/opentelemetry-collector";
|
||||
create_directory = true;
|
||||
};
|
||||
|
||||
receivers.journald = {
|
||||
# ⚠️ STATED, and it must stay stated: the receiver's own default
|
||||
|
|
|
|||
Loading…
Reference in a new issue