line / promgen

Promgen is a configuration file generator for Prometheus
https://line.github.io/promgen/
MIT License
1.04k stars 150 forks source link

Convert Rule label/annotation storage to JsonField #427

Closed kfdm closed 1 year ago

kfdm commented 1 year ago

When Promgen was written, there was not a default JsonField, so labels and annotations were implemented as a class. Now that JsonField has been in Django since 3.1, it's a good time to change the implementation.

Previously, our audit log did not store change to labels/annotations (because they were separate objects), so one benefit of this migration is that those changes now show up in the edit log.

We also expect some queries to be a bit faster now that we do not need to query the other table relations for labels/annotations.

There may be some bits that could use better comments so feel free to point out the lines where the current explanation is insufficient.