beorn7
Repos
32
Followers
909
Following
374

Events

issue comment
Bug in `predict_linear` at the end of the prediction?

As a side note: predict_linear is not really suitable to draw a forecast graph in Grafana.

Created at 3 days ago
issue comment
Bug in `predict_linear` at the end of the prediction?

I believe the behavior you are seeing is correct. Your query predicts the value 1 hour (3600 seconds) into the future, based on the data of the last two days (2d). That works well as long as there are 2d of data available. However, once you plot the data for the actual future, your 2d window contains less and less data, until it contains no data at all at 2d into the future. Where you see the very wild changes in the curve, you have very few data points in the 2d window, so the prediction gets very noisy.

Created at 3 days ago

video for promcon 22 main talk

Signed-off-by: beorn7 beorn@grafana.com

Created at 3 days ago
issue comment
Add `mad_over_time` function

I have added a dev summit agenda item. (Next dev summit is 2023-01-26.)

Created at 3 days ago
issue comment
Add constrained labels and Constrained variant for all MetricVecs

This whole thing reminds me of ancient thoughts I had about revamping labels. One was about somehow automating the instantiation of all the possible vector elements, which is something that is recommended to do manually right now. Here is an example from the client_golang code itself:

	cnt := prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "promhttp_metric_handler_requests_total",
			Help: "Total number of scrapes by HTTP status code.",
		},
		[]string{"code"},
	)
	// Initialize the most likely HTTP status codes.
	cnt.WithLabelValues("200")
	cnt.WithLabelValues("500")
	cnt.WithLabelValues("503")

Now imagine the code label above being a ConstrainedLabel that normalizes all label values to either 200, 500, 503, or other.

Imagine further that the ConstrainedLabel type looks like this:

type ConstrainedLabel struct {
	Name       string
	Constraint func(string) string
	Values     func() []string
}

If Values returns a non-empty slice, the slice contains all possible label values.

And now we have all the parts in place: If a vector has only constant and constrained labels, of which all have a Values function that returns a non-empty slice, the code can automatically create the cartesian product of all labels and initialize all vector elements.

WDYT?

Created at 3 days ago
issue comment
Add constrained labels and Constrained variant for all MetricVecs

Finally I had a bit of time to look at it.

I haven't checked correctness (i.e. "is it doing what we expect it to do?"). I assume you are on top of that anyway.

Interesting approach with the V2 variable. Do you know of any other applications of this pattern? It looks intriguing, but it would be even better if this has already been tried elsewhere.

In general, I'm OK with this. I'll elaborate on one more idea in the next comment, but feel free to go ahead as is.

Created at 3 days ago
beorn7 create tag v1.5.0
Created at 3 days ago
pull request closed
Enable dependabot

Update Go modules monthly.

Signed-off-by: SuperQ superq@gmail.com

Created at 3 days ago
delete branch
beorn7 delete branch superq/dependabot
Created at 3 days ago

Enable dependabot

Update Go modules monthly.

Signed-off-by: SuperQ superq@gmail.com

Merge pull request #513 from prometheus/superq/dependabot

Enable dependabot

Created at 3 days ago

Update Go version to 1.19

Signed-off-by: beorn7 beorn@grafana.com

Update dependencies

This also includes, via update of prometheus/exporter_toolkit, the new feature of multiple listening addresses and systemd activated listeners.

Signed-off-by: beorn7 beorn@grafana.com

Cut v1.5.0

Signed-off-by: beorn7 beorn@grafana.com

Merge pull request #512 from prometheus/beorn7/release

Cut v1.5.0

Created at 3 days ago
delete branch
beorn7 delete branch beorn7/release
Created at 3 days ago
pull request closed
Cut v1.5.0

This also updates to exporter_toolkit v0.8.1, thereby introducing multiple listening addresses and systemd socket support. Please double-check that the code changes in main.go are valid.

Created at 3 days ago
issue comment
Cut v1.5.0

\o/

Created at 3 days ago

Update Go version to 1.19

Signed-off-by: beorn7 beorn@grafana.com

Update dependencies

This also includes, via update of prometheus/exporter_toolkit, the new feature of multiple listening addresses and systemd activated listeners.

Signed-off-by: beorn7 beorn@grafana.com

Cut v1.5.0

Signed-off-by: beorn7 beorn@grafana.com

Created at 3 days ago
started
Created at 3 days ago

Cut v1.5.0

Signed-off-by: beorn7 beorn@grafana.com

Created at 4 days ago
pull request opened
Cut v1.5.0

This also updates to exporter_toolkit v0.8.1, thereby introducing multiple listening addresses and systemd socket support. Please double-check that the code changes in main.go are valid.

Created at 4 days ago
create branch
beorn7 create branch beorn7/release
Created at 4 days ago