Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(dataobj): instrument data objects #15803

Merged
merged 2 commits into from
Jan 16, 2025

Conversation

rfratto
Copy link
Member

@rfratto rfratto commented Jan 16, 2025

This commit adds detailed instrumentation for data objects:

  • Configuration information for the dataobj.Builder, which can be used to determine page and object efficiency.

  • Performance information about dataobj.Builder.

  • Current stats about the object being appended to.

  • Many histograms recording the distribution of data in sections, columns, and pages. To limit the number of time series per builder, these stats are not available as classic histograms.

As a result, this introduces quite a few time series, around 80 per builder instance.

This commit adds detailed instrumentation for data objects:

* Configuration information for the dataobj.Builder, which can be used
  to determine page and object efficiency.

* Performance information about dataobj.Builder.

* Current stats about the object being appended to.

* Many histograms recording the distribution of data in sections,
  columns, and pages. To limit the number of time series per builder,
  these stats are not available as classic histograms.

As a result, this introduces quite a few time series, around 80 per
builder instance.
@rfratto rfratto requested a review from a team as a code owner January 16, 2025 20:20
@rfratto rfratto force-pushed the dataobj-instrumentation branch from 95febf5 to cf29a6c Compare January 16, 2025 20:27
f.Var(&cfg.TargetObjectSize, prefix+"target-object-size", "The size of the target object to use for the data object builder.")
f.StringVar(&cfg.StorageBucketPrefix, prefix+"storage-bucket-prefix", "dataobj/", "The prefix to use for the storage bucket.")
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cyriltovena I removed the config here like we discussed to make prefixing the caller's job with a prefixed bucket.

_ = cfg.TargetObjectSize.Set("1GB")

f.IntVar(&cfg.SHAPrefixSize, prefix+"sha-prefix-size", 2, "The size of the SHA prefix to use for the data object builder.")
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(just reorganizing the lines so it's a little nicer to read)

Bucket prefix can be determined by the client by passing a prefixed
bucket.
@rfratto rfratto force-pushed the dataobj-instrumentation branch from cf29a6c to 194a13b Compare January 16, 2025 20:32
Copy link
Contributor

@cyriltovena cyriltovena left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

@rfratto rfratto merged commit 093e36a into grafana:main Jan 16, 2025
59 checks passed
@rfratto rfratto deleted the dataobj-instrumentation branch January 16, 2025 20:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants