{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":530730261,"defaultBranch":"main","name":"promql-engine","ownerLogin":"thanos-io","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-08-30T16:01:47.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/49725059?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726583631.0","currentOid":""},"activityList":{"items":[{"before":"6360961f0d646ac35953ef609a9636e131459086","after":"fb5e62a5485a5a29fe9c7c1f42a5780a262d6c27","ref":"refs/heads/querier_close_at_the_end","pushedAt":"2024-09-18T06:14:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"GiedriusS","name":"Giedrius Statkevičius","path":"/GiedriusS","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2377233?s=80&v=4"},"commit":{"message":"storage/prometheus: close querier at the end\n\nWe are trying to reuse memory and hitting a bug where the querier is\nclosed too soon. Prometheus closes the querier at the end of Exec(). We\nshould do that too.\n\nSigned-off-by: Giedrius Statkevičius ","shortMessageHtmlLink":"storage/prometheus: close querier at the end"}},{"before":"dfc40153feaa3d587d2fa5db67a8b2718a5e51c9","after":"6360961f0d646ac35953ef609a9636e131459086","ref":"refs/heads/querier_close_at_the_end","pushedAt":"2024-09-18T05:55:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"GiedriusS","name":"Giedrius Statkevičius","path":"/GiedriusS","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2377233?s=80&v=4"},"commit":{"message":"storage/prometheus: close querier at the end\n\nWe are trying to reuse memory and hitting a bug where the querier is\nclosed too soon. Prometheus closes the querier at the end of Exec(). We\nshould do that too.\n\nSigned-off-by: Giedrius Statkevičius ","shortMessageHtmlLink":"storage/prometheus: close querier at the end"}},{"before":"448b43c2c3b2755a15b1d4024dd9cdad7c6b60d6","after":"dfc40153feaa3d587d2fa5db67a8b2718a5e51c9","ref":"refs/heads/querier_close_at_the_end","pushedAt":"2024-09-17T15:08:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"GiedriusS","name":"Giedrius Statkevičius","path":"/GiedriusS","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2377233?s=80&v=4"},"commit":{"message":"storage/prometheus: close querier at the end\n\nWe are trying to reuse memory and hitting a bug where the querier is\nclosed too soon. Prometheus closes the querier at the end of Exec(). We\nshould do that too.\n\nSigned-off-by: Giedrius Statkevičius ","shortMessageHtmlLink":"storage/prometheus: close querier at the end"}},{"before":"c0481a669b823c4d917f6623a3ea360a1aee9d01","after":"448b43c2c3b2755a15b1d4024dd9cdad7c6b60d6","ref":"refs/heads/querier_close_at_the_end","pushedAt":"2024-09-17T15:05:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"GiedriusS","name":"Giedrius Statkevičius","path":"/GiedriusS","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2377233?s=80&v=4"},"commit":{"message":"storage/prometheus: close querier at the end\n\nWe are trying to reuse memory and hitting a bug where the querier is\nclosed too soon. Prometheus closes the querier at the end of Exec(). We\nshould do that too.\n\nSigned-off-by: Giedrius Statkevičius ","shortMessageHtmlLink":"storage/prometheus: close querier at the end"}},{"before":"f8186916969a258620f8c0e253076abef46d1d2a","after":"c0481a669b823c4d917f6623a3ea360a1aee9d01","ref":"refs/heads/querier_close_at_the_end","pushedAt":"2024-09-17T15:01:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"GiedriusS","name":"Giedrius Statkevičius","path":"/GiedriusS","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2377233?s=80&v=4"},"commit":{"message":"storage/prometheus: close querier at the end\n\nWe are trying to reuse memory and hitting a bug where the querier is\nclosed too soon. Prometheus closes the querier at the end of Exec(). We\nshould do that too.\n\nSigned-off-by: Giedrius Statkevičius ","shortMessageHtmlLink":"storage/prometheus: close querier at the end"}},{"before":"e1402c64432c1ab464642641169f88a6bb457dd9","after":"f8186916969a258620f8c0e253076abef46d1d2a","ref":"refs/heads/querier_close_at_the_end","pushedAt":"2024-09-17T14:34:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"GiedriusS","name":"Giedrius Statkevičius","path":"/GiedriusS","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2377233?s=80&v=4"},"commit":{"message":"storage/prometheus: close querier at the end\n\nWe are trying to reuse memory and hitting a bug where the querier is\nclosed too soon. Prometheus closes the querier at the end of Exec(). We\nshould do that too.\n\nSigned-off-by: Giedrius Statkevičius ","shortMessageHtmlLink":"storage/prometheus: close querier at the end"}},{"before":null,"after":"e1402c64432c1ab464642641169f88a6bb457dd9","ref":"refs/heads/querier_close_at_the_end","pushedAt":"2024-09-17T14:33:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"GiedriusS","name":"Giedrius Statkevičius","path":"/GiedriusS","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2377233?s=80&v=4"},"commit":{"message":"storage/prometheus: close querier at the end\n\nWe are trying to reuse memory and hitting a bug where the querier is\nclosed too soon. Prometheus closes the querier at the end of Exec(). We\nshould do that too.\n\nSigned-off-by: Giedrius Statkevičius ","shortMessageHtmlLink":"storage/prometheus: close querier at the end"}},{"before":"26a1aad30bbf4102ba2e42e401be5e9817deec5c","after":null,"ref":"refs/heads/mhoffmann-add-sort-by-label-functions","pushedAt":"2024-08-17T17:27:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yeya24","name":"Ben Ye","path":"/yeya24","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25150124?s=80&v=4"}},{"before":"b81bd854cc60f64fb21ba28c15f1da9a49f27214","after":"de6d9f87657886d1809f20958e367f24463ad918","ref":"refs/heads/main","pushedAt":"2024-08-17T17:27:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yeya24","name":"Ben Ye","path":"/yeya24","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25150124?s=80&v=4"},"commit":{"message":"engine: add sort_by_label functions (#481)","shortMessageHtmlLink":"engine: add sort_by_label functions (#481)"}},{"before":"acfee21570b2e9875d12e9f1254e71eb5b1f14e6","after":"b81bd854cc60f64fb21ba28c15f1da9a49f27214","ref":"refs/heads/main","pushedAt":"2024-08-15T12:46:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fpetkovski","name":"Filip Petkovski","path":"/fpetkovski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1286231?s=80&v=4"},"commit":{"message":"Fix counter reset for rate function (#482)\n\nThere is a subtle bug with the rate calculation where we record\r\na counter reset even when the previous sample falls outside of the\r\nrate window. This leads to spurious spikes in results, especially\r\nwhen the step is larger than the rate interval.\r\n\r\nSigned-off-by: Filip Petkovski ","shortMessageHtmlLink":"Fix counter reset for rate function (#482)"}},{"before":"f1637dcca4a9bbc01079ae47db699dc81d85f17a","after":"26a1aad30bbf4102ba2e42e401be5e9817deec5c","ref":"refs/heads/mhoffmann-add-sort-by-label-functions","pushedAt":"2024-08-15T06:16:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"engine: add sort_by_label functions\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"engine: add sort_by_label functions"}},{"before":"37962624c1288b8eeed4e008b1c3ed6f6b151733","after":"f1637dcca4a9bbc01079ae47db699dc81d85f17a","ref":"refs/heads/mhoffmann-add-sort-by-label-functions","pushedAt":"2024-08-14T19:59:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"engine: add sort_by_label functions\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"engine: add sort_by_label functions"}},{"before":"b92b3a694eff42c779c116c4025a54404a7ca10e","after":"37962624c1288b8eeed4e008b1c3ed6f6b151733","ref":"refs/heads/mhoffmann-add-sort-by-label-functions","pushedAt":"2024-08-14T19:59:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"engine: add sort_by_label functions\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"engine: add sort_by_label functions"}},{"before":"acf1e7310048d4b3f196b6bf4abc95bc368e7085","after":"b92b3a694eff42c779c116c4025a54404a7ca10e","ref":"refs/heads/mhoffmann-add-sort-by-label-functions","pushedAt":"2024-08-14T19:58:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"engine: add sort_by_label functions\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"engine: add sort_by_label functions"}},{"before":null,"after":"acf1e7310048d4b3f196b6bf4abc95bc368e7085","ref":"refs/heads/mhoffmann-add-sort-by-label-functions","pushedAt":"2024-08-14T19:57:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"engine: add sort_by_label functions","shortMessageHtmlLink":"engine: add sort_by_label functions"}},{"before":"4fbc06fb4baca85918feb14cd1e9c7e81e57ddb2","after":"fbc6e6902eb1b82ad5c61009ce92d4938e4960cb","ref":"refs/heads/mhoffmann-handle-partial-responses-in-remote-engines","pushedAt":"2024-08-14T19:05:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"execution: partial responses in distributed engine\n\nFor very distributed setups we need to be able to deal with partial\nfailures. This commit adds an option to continue evaulation if we\nencounter an error in a remote engine but dont want to fail the whole\nquery.\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"execution: partial responses in distributed engine"}},{"before":"2f5c05e9937a809999986723a878fa00013fda09","after":"4fbc06fb4baca85918feb14cd1e9c7e81e57ddb2","ref":"refs/heads/mhoffmann-handle-partial-responses-in-remote-engines","pushedAt":"2024-08-12T12:36:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"execution: partial responses in distributed engine\n\nFor very distributed setups we need to be able to deal with partial\nfailures. This commit adds an option to continue evaulation if we\nencounter an error in a remote engine but dont want to fail the whole\nquery.\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"execution: partial responses in distributed engine"}},{"before":"d046c49bdff649afec2abda8ad157a25514dc365","after":"2f5c05e9937a809999986723a878fa00013fda09","ref":"refs/heads/mhoffmann-handle-partial-responses-in-remote-engines","pushedAt":"2024-08-12T12:35:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"execution: partial responses in distributed engine\n\nFor very distributed setups we need to be able to deal with partial\nfailures. This commit adds an option to continue evaulation if we\nencounter an error in a remote engine but dont want to fail the whole\nquery.\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"execution: partial responses in distributed engine"}},{"before":null,"after":"d046c49bdff649afec2abda8ad157a25514dc365","ref":"refs/heads/mhoffmann-handle-partial-responses-in-remote-engines","pushedAt":"2024-08-12T12:34:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"execution: partial responses in distributed engine\n\nFor very distributed setups we need to be able to deal with partial\nfailures. This commit adds an option to continue evaulation if we\nencounter an error in a remote engine but dont want to fail the whole\nquery.","shortMessageHtmlLink":"execution: partial responses in distributed engine"}},{"before":"580dc9611a583a57142012be1cee8d5b74aaab82","after":"acfee21570b2e9875d12e9f1254e71eb5b1f14e6","ref":"refs/heads/main","pushedAt":"2024-08-08T17:59:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fpetkovski","name":"Filip Petkovski","path":"/fpetkovski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1286231?s=80&v=4"},"commit":{"message":"Implement streaming rate buffer (#478)\n\nThe current way we calculate rate and friends (increase and delta) is to buffer\r\nsamples for the whole windowing range and apply the rate function over\r\nthat buffer. Samples which are used in the next step are retained, and\r\nreused for the next step.\r\n\r\nThis approach works well for short rate intervals (up to a few minutes), but it\r\nends up using significant memory when the rate interval is over an hour long.\r\n\r\nThis commit implements a specialized rate buffer which can calculate the rate\r\nin a streaming manner, by keeping track of the first and last sample for each\r\nevaluation step. In order to account for counter resets, we also store samples\r\nthat trigger the reset in a separate slice and pass them to the rate function.\r\n\r\nThe advantage of this approach is twofold:\r\n* we can use far less memory for instant queries over long rate intervals since we\r\n only track the first and last sample for the evaluation step\r\n* when using Grafana, the rate interval and step variables are set such that there\r\n is a very small overlap between sequential steps (e.g. rate_interval = 1m, step = 45s).\r\n This means that the rate buffer should only calculate the value for 2 steps at a time,\r\n and can reuse state from past steps for upcoming ones.\r\n\r\nSigned-off-by: Filip Petkovski ","shortMessageHtmlLink":"Implement streaming rate buffer (#478)"}},{"before":"d315a56500cdac49a622b7ec4ebd60de845d697a","after":null,"ref":"refs/heads/mhoffmann-distribute-more-joins","pushedAt":"2024-08-05T18:21:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"GiedriusS","name":"Giedrius Statkevičius","path":"/GiedriusS","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2377233?s=80&v=4"}},{"before":"103e6f33eb0ae7844c139ca458a1b4c8257b7229","after":"580dc9611a583a57142012be1cee8d5b74aaab82","ref":"refs/heads/main","pushedAt":"2024-08-05T11:39:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"plan: distribute more binary joins (#472)\n\n* distribute joins that can be executed within a remote engine\r\n\r\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"plan: distribute more binary joins (#472)"}},{"before":"de122dc4e685cd187d3c8e1f19f8d50438f41941","after":"d315a56500cdac49a622b7ec4ebd60de845d697a","ref":"refs/heads/mhoffmann-distribute-more-joins","pushedAt":"2024-08-05T11:22:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"plan: distribute more binary joins\n\n* distribute joins that can be executed within a remote engine\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"plan: distribute more binary joins"}},{"before":"fd90edb634fd99a151219bda25c7e0098eadda40","after":"de122dc4e685cd187d3c8e1f19f8d50438f41941","ref":"refs/heads/mhoffmann-distribute-more-joins","pushedAt":"2024-08-05T11:22:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"plan: distribute more binary joins\n\n* distribute joins that can be executed within a remote engine\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"plan: distribute more binary joins"}},{"before":"15579bfab7866ecd959809478344698611a39f97","after":"fd90edb634fd99a151219bda25c7e0098eadda40","ref":"refs/heads/mhoffmann-distribute-more-joins","pushedAt":"2024-08-05T11:21:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"plan: distribute more binary joins\n\n* distribute joins that can be executed within a remote engine\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"plan: distribute more binary joins"}},{"before":"ee3311b27a7397b8c1fb5cb2ef1fd948e80de77b","after":"15579bfab7866ecd959809478344698611a39f97","ref":"refs/heads/mhoffmann-distribute-more-joins","pushedAt":"2024-08-05T11:16:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"plan: distribute more binary joins\n\n* distribute joins that can be executed within a remote engine\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"plan: distribute more binary joins"}},{"before":"f672dde595a13e4522712a772bdb6daa9daa7ce4","after":"ee3311b27a7397b8c1fb5cb2ef1fd948e80de77b","ref":"refs/heads/mhoffmann-distribute-more-joins","pushedAt":"2024-08-05T11:12:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"plan: distribute more binary joins\n\n* distribute joins that can be executed within a remote engine\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"plan: distribute more binary joins"}},{"before":"41875c1201098e93f11b04646297a1b081ef5a72","after":"f672dde595a13e4522712a772bdb6daa9daa7ce4","ref":"refs/heads/mhoffmann-distribute-more-joins","pushedAt":"2024-08-02T11:20:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"plan: distribute more binary joins\n\n* distribute joins that can be executed within a remote engine\n* tell the engine which labels form the partition\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"plan: distribute more binary joins"}},{"before":"6526dba85f440e24e0f9b3be533604fbb4c3c926","after":"41875c1201098e93f11b04646297a1b081ef5a72","ref":"refs/heads/mhoffmann-distribute-more-joins","pushedAt":"2024-08-02T11:07:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"plan: distribute more binary joins\n\n* distribute joins that can be executed within a remote engine\n* tell the engine which labels form the partition\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"plan: distribute more binary joins"}},{"before":"c2423ba93b4e251bd88701d90a41c8879c572425","after":"6526dba85f440e24e0f9b3be533604fbb4c3c926","ref":"refs/heads/mhoffmann-distribute-more-joins","pushedAt":"2024-08-02T10:52:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MichaHoffmann","name":"Michael Hoffmann","path":"/MichaHoffmann","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17451647?s=80&v=4"},"commit":{"message":"plan: distribute more binary joins\n\n* distribute joins that can be executed within a remote engine\n* tell the engine which labels form the partition\n\nSigned-off-by: Michael Hoffmann ","shortMessageHtmlLink":"plan: distribute more binary joins"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQwNjoxNDowMi4wMDAwMDBazwAAAAS5SM52","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQwNjoxNDowMi4wMDAwMDBazwAAAAS5SM52","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0wMlQxMDo1Mjo1OS4wMDAwMDBazwAAAASQEg13"}},"title":"Activity · thanos-io/promql-engine"}