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

WIP: feat(metrics): add actix-web metrics exporter #793

Draft
wants to merge 16 commits into
base: main
Choose a base branch
from

Conversation

lefuturiste
Copy link

For a starter, we can only include the basics metrics from the actix web prom crate.

as discussed in #773

Copy link
Member

@nyurik nyurik left a comment

Choose a reason for hiding this comment

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

this looks fine, and I read your discussion in nlopes/actix-web-prom#72 - but still not certain I understood the resolution of the problem -- would it make sense for the middleware to have an extra API to override path param to convert from /srcA,srcB/1/1/1 to srcA,srcB (but at the same time ignore the tilejson request /srcA,srcB? Should this be some magical attribute?


// labels.insert("label_foo".to_string(), "value_barbarbbabbmiles".to_string());
let prometheus = PrometheusMetricsBuilder::new("martin")
.endpoint("/metrics")
Copy link
Member

Choose a reason for hiding this comment

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

if we start handling /metrics, we would have to declare this as a reserved keyword (we might be missing docs in a martin book for this). One workaround perhaps would be to add everything "magical" to the /_/metrics style prefixes because _ is not a valid source ID i think.

/// List of keywords that cannot be used as source IDs. Some of these are reserved for future use.
/// Reserved keywords must never end in a "dot number" (e.g. ".1")
pub const RESERVED_KEYWORDS: &[&str] = &[
"catalog", "config", "font", "health", "help", "index", "manifest", "refresh", "reload",
"sprite", "status",
];

Copy link
Author

Choose a reason for hiding this comment

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

if we start handling /metrics, we would have to declare this as a reserved keyword (we might be missing docs in a martin book for this). One workaround perhaps would be to add everything "magical" to the /_/metrics style prefixes because _ is not a valid source ID i think.

/// List of keywords that cannot be used as source IDs. Some of these are reserved for future use.
/// Reserved keywords must never end in a "dot number" (e.g. ".1")
pub const RESERVED_KEYWORDS: &[&str] = &[
"catalog", "config", "font", "health", "help", "index", "manifest", "refresh", "reload",
"sprite", "status",
];

Right, as you wish, I'm fine with both solutions (the reserved keyword and the /_/metrics workaround). We just have to keep in mind that /metrics is the standard path and the default, so the second solution would mean a little bit more config on the scraper side.

Copy link
Member

Choose a reason for hiding this comment

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

good point about conventions (actually, didn't we talk about it elsewhere?), i'm ok to add /metrics to reserved then

@lefuturiste
Copy link
Author

this looks fine, and I read your discussion in nlopes/actix-web-prom#72 - but still not certain I understood the resolution of the problem -- would it make sense for the middleware to have an extra API to override path param to convert from /srcA,srcB/1/1/1 to srcA,srcB (but at the same time ignore the tilejson request /srcA,srcB? Should this be some magical attribute?

I don't really what you are saying, the issue is with the variance of /srcA,srcB, could also be /srcB,srcA (I suppose)
So probably the best thing to do is to have a magical callback that is defined on the maplibre side, that take the request parameter and request path and return the path for metrics. So the business logic stay downstream and not defined in the lib.
But, I don't recall that we settled on a solution yet.

@lefuturiste lefuturiste marked this pull request as draft August 4, 2023 07:58
@nyurik
Copy link
Member

nyurik commented Aug 5, 2023

this looks fine, and I read your discussion in nlopes/actix-web-prom#72 - but still not certain I understood the resolution of the problem -- would it make sense for the middleware to have an extra API to override path param to convert from /srcA,srcB/1/1/1 to srcA,srcB (but at the same time ignore the tilejson request /srcA,srcB? Should this be some magical attribute?

I don't really what you are saying, the issue is with the variance of /srcA,srcB, could also be /srcB,srcA (I suppose) So probably the best thing to do is to have a magical callback that is defined on the maplibre side, that take the request parameter and request path and return the path for metrics. So the business logic stay downstream and not defined in the lib. But, I don't recall that we settled on a solution yet.

Are you sure its a big deal to collapse /srcA,srcB and /srcB,srcA into one? I wouldn't worry too much about this tbh... Worst case - can later add some sort of a collapser, e.g. /srcA+ would mean everything with srcA as the first layer, plus any number of other layers mixed in. The collapser could even be configurable to how many sources to keep, e.g. 0 -- /+ means all multi-sourced requests, or 2 would create /srcA,srcB and /srcA,srcB+ metrics

@lefuturiste
Copy link
Author

this looks fine, and I read your discussion in nlopes/actix-web-prom#72 - but still not certain I understood the resolution of the problem -- would it make sense for the middleware to have an extra API to override path param to convert from /srcA,srcB/1/1/1 to srcA,srcB (but at the same time ignore the tilejson request /srcA,srcB? Should this be some magical attribute?

I don't really what you are saying, the issue is with the variance of /srcA,srcB, could also be /srcB,srcA (I suppose) So probably the best thing to do is to have a magical callback that is defined on the maplibre side, that take the request parameter and request path and return the path for metrics. So the business logic stay downstream and not defined in the lib. But, I don't recall that we settled on a solution yet.

Are you sure its a big deal to collapse /srcA,srcB and /srcB,srcA into one? I wouldn't worry too much about this tbh... Worst case - can later add some sort of a collapser, e.g. /srcA+ would mean everything with srcA as the first layer, plus any number of other layers mixed in. The collapser could even be configurable to how many sources to keep, e.g. 0 -- /+ means all multi-sourced requests, or 2 would create /srcA,srcB and /srcA,srcB+ metrics

yes, you right, for now, let's not worry about this issue, will deal with that later.

@nyurik
Copy link
Member

nyurik commented Aug 13, 2023

@lefuturiste i added metrics to reserved in #802 , let me know if you need any help with this PR

nyurik added a commit that referenced this pull request Aug 13, 2023
minor change to allow for #793
@nyurik
Copy link
Member

nyurik commented Aug 27, 2023

@lefuturiste any updates? thx

@lefuturiste
Copy link
Author

lefuturiste commented Sep 6, 2023

@lefuturiste any updates? thx

Hi!
I've updated upstream PR for this, because I really want to have path cardinality (idk really why an obsession may be 😄 ), nlopes/actix-web-prom#73
I awaiting response from actix-web-prom dev.

@lefuturiste
Copy link
Author

while i'm awaiting for a response from the actix-web-prom developer I will explore the instrumentation of postgresql connexion.

@lefuturiste
Copy link
Author

The PR at nlopes/actix-web-prom#73 was merged today. So we can go forward from there.

@nyurik
Copy link
Member

nyurik commented Dec 1, 2023

exciting, thanks, let me know if you need any help

nyurik and others added 15 commits August 26, 2024 17:16
`npm install` is having some weird issues, while `yarn` seem to work
well. Also, bumped almost all dependencies.
Bumps [clap](https://github.com/clap-rs/clap) from 4.3.14 to 4.3.17.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.3.17</h2>
<h2>[4.3.17] - 2023-07-19</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Address a regression in wrapping
<code>PossibleValue</code> descriptions in <code>--help</code></li>
</ul>
<h2>v4.3.16</h2>
<h2>[4.3.16] - 2023-07-18</h2>
<h3>Fixes</h3>
<ul>
<li>Don't assert when stateful value parsers fail on defaults (e.g.
checking if a path exists)</li>
</ul>
<h2>v4.3.15</h2>
<h2>[4.3.15] - 2023-07-18</h2>
<h3>Features</h3>
<ul>
<li><em>(unstable-styles)</em> Re-export <code>anstyle</code></li>
</ul>
<h3>Documentation</h3>
<ul>
<li><em>(unstable-styles)</em> Provide more examples</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.3.17] - 2023-07-19</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Address a regression in wrapping
<code>PossibleValue</code> descriptions in <code>--help</code></li>
</ul>
<h2>[4.3.16] - 2023-07-18</h2>
<h3>Fixes</h3>
<ul>
<li>Don't assert when stateful value parsers fail on defaults (e.g.
checking if a path exists)</li>
</ul>
<h2>[4.3.15] - 2023-07-18</h2>
<h3>Features</h3>
<ul>
<li><em>(unstable-styles)</em> Re-export <code>anstyle</code></li>
</ul>
<h3>Documentation</h3>
<ul>
<li><em>(unstable-styles)</em> Provide more examples</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/clap-rs/clap/commit/d824b1f0fd02c23a46b6b70bfdabea16cbdb1630"><code>d824b1f</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/99b478cc75fec49ab0b32941f1121f9a78df83a3"><code>99b478c</code></a>
docs: Upate changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/4c7b9a10ac671b72402847a0ad5e2b21684bd697"><code>4c7b9a1</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5023">#5023</a>
from epage/wrap</li>
<li><a
href="https://github.com/clap-rs/clap/commit/8b536e271935a98d1b96beab5b48c8a9c659bfda"><code>8b536e2</code></a>
fix(help): Wrap long possible values correctly</li>
<li><a
href="https://github.com/clap-rs/clap/commit/0951f934678536c41c8348af53b572c83b8b416e"><code>0951f93</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5018">#5018</a>
from epage/dynamiite</li>
<li><a
href="https://github.com/clap-rs/clap/commit/00e92171832238e85ab7336a700598a6fb33effe"><code>00e9217</code></a>
feat(complete)!: Open to new shells for dynamic completions</li>
<li><a
href="https://github.com/clap-rs/clap/commit/830dd740ef1ae1f83b9887e107a15e5aef75d5f4"><code>830dd74</code></a>
feat(complete): Add dynamic-support shell enum</li>
<li><a
href="https://github.com/clap-rs/clap/commit/278ae3ec635f970140f07b8ee460906ac61e7b52"><code>278ae3e</code></a>
refactor(complete): Pull out completer</li>
<li><a
href="https://github.com/clap-rs/clap/commit/e3f1ad932b5176bde534d1b350444a53bb25a48c"><code>e3f1ad9</code></a>
refactor(complete): Generalize dynamic CLI interface</li>
<li><a
href="https://github.com/clap-rs/clap/commit/8e9ded2f6a484cd55142ce255677e9ce4578e02e"><code>8e9ded2</code></a>
fix(complete)!: Pull out generic completion code</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/v4.3.14...v4.3.17">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.3.14&new-version=4.3.17)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [clap](https://github.com/clap-rs/clap) from 4.3.17 to 4.3.19.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.3.19</h2>
<h2>[4.3.19] - 2023-07-21</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parse)</em> Respect <code>value_terminator</code> even in the
presence of later multiple-value positional arguments</li>
</ul>
<h2>v4.3.18</h2>
<h2>[4.3.18] - 2023-07-21</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parse)</em> Suggest <code>--</code> in fewer places where it
won't work</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.3.19] - 2023-07-21</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parse)</em> Respect <code>value_terminator</code> even in the
presence of later multiple-value positional arguments</li>
</ul>
<h2>[4.3.18] - 2023-07-21</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parse)</em> Suggest <code>--</code> in fewer places where it
won't work</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/clap-rs/clap/commit/ae5549d61f4f5de0b6859e44aa5a78cb3861bc63"><code>ae5549d</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/4b30a2cfe1c1ffae6c3f279c0c1ee2a6758cf5b9"><code>4b30a2c</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/5540d20286e00ee600b2495ba75d0a2eded6ca19"><code>5540d20</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5037">#5037</a>
from epage/term</li>
<li><a
href="https://github.com/clap-rs/clap/commit/8bee7280342d85abb6f2b0913a02075c8f0045e5"><code>8bee728</code></a>
fix(parser): Value terminator has higher precedence than later multiple
values</li>
<li><a
href="https://github.com/clap-rs/clap/commit/bdf205bff25c41e7407822d93e6bac71672f0448"><code>bdf205b</code></a>
test(parser): Show one value terminator bug</li>
<li><a
href="https://github.com/clap-rs/clap/commit/727ca296746217bb9a974d90d64d351a1ce1436d"><code>727ca29</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5034">#5034</a>
from epage/update</li>
<li><a
href="https://github.com/clap-rs/clap/commit/9856d675410e492b31db3c6861386e6d9b1f36b1"><code>9856d67</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/a6267b77a7cd282e31186ec56dadb7fc866b0e9a"><code>a6267b7</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/e82234162c3e737bc65c2c8ad2c8ddc5ce2b3dbb"><code>e822341</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5033">#5033</a>
from epage/escape</li>
<li><a
href="https://github.com/clap-rs/clap/commit/0137a8be651e63dc65833713aa1e4a5bd28339ed"><code>0137a8b</code></a>
chore(complete): Update completest</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/v4.3.17...v4.3.19">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.3.17&new-version=4.3.19)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.71
to 0.1.72.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/async-trait/releases">async-trait's
releases</a>.</em></p>
<blockquote>
<h2>0.1.72</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/async-trait/commit/a01e5d4fb61f67474e5225781395151043c44132"><code>a01e5d4</code></a>
Release 0.1.72</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/a38d35acfb32d44b8136dc550e3e9fbf8b671b5e"><code>a38d35a</code></a>
Opt in to generate-link-to-definition when building on docs.rs</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/036a373ab48cd32e0543c6d06d5e26629f8be3d4"><code>036a373</code></a>
Update ui tests with 2021-edition diagnostics</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/059aafd8cc369b42185999baf9e907d491d28e76"><code>059aafd</code></a>
Update to 2021 edition</li>
<li>See full diff in <a
href="https://github.com/dtolnay/async-trait/compare/0.1.71...0.1.72">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-trait&package-manager=cargo&previous-version=0.1.71&new-version=0.1.72)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.43 to
1.0.44.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/thiserror/releases">thiserror's
releases</a>.</em></p>
<blockquote>
<h2>1.0.44</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/thiserror/commit/54b70cfe109981e6349aebae4393c62c93cccafc"><code>54b70cf</code></a>
Release 1.0.44</li>
<li><a
href="https://github.com/dtolnay/thiserror/commit/f86e8e5881f157f115c271b9ff578867cc91ba92"><code>f86e8e5</code></a>
Opt in to generate-link-to-definition when building on docs.rs</li>
<li>See full diff in <a
href="https://github.com/dtolnay/thiserror/compare/1.0.43...1.0.44">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=thiserror&package-manager=cargo&previous-version=1.0.43&new-version=1.0.44)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.103 to
1.0.104.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/json/releases">serde_json's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.104</h2>
<ul>
<li>Provide IntoDeserializer impl for &amp;serde_json::Value (<a
href="https://redirect.github.com/serde-rs/json/issues/1045">#1045</a>,
thanks <a
href="https://github.com/ZetaNumbers"><code>@​ZetaNumbers</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/serde-rs/json/commit/ab084832926cf7d733785c8801aa4fcf96523956"><code>ab08483</code></a>
Release 1.0.104</li>
<li><a
href="https://github.com/serde-rs/json/commit/f6cc4f31a38228b59cc28ffc471a8d50fc20d2a3"><code>f6cc4f3</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1045">#1045</a>
from ZetaNumbers/value-ref-into-deserializer</li>
<li><a
href="https://github.com/serde-rs/json/commit/8e8db8ce0cf066d8ef4cbe0167c3a97d18a49674"><code>8e8db8c</code></a>
Implement IntoDeserializer for &amp;Value</li>
<li><a
href="https://github.com/serde-rs/json/commit/8f90eacf6c6335fbd925b1d663e46f4a7592ebba"><code>8f90eac</code></a>
Delete inline attributes throughout test suite</li>
<li>See full diff in <a
href="https://github.com/serde-rs/json/compare/v1.0.103...v1.0.104">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.103&new-version=1.0.104)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [subst](https://github.com/fizyr/subst) from 0.2.2 to 0.2.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/fizyr/subst/blob/main/CHANGELOG">subst's
changelog</a>.</em></p>
<blockquote>
<h1>Version 0.2.3 - 2023-07-26</h1>
<ul>
<li>[add][minor] Support unsized <code>VariableMap</code> objects, such
as <code>&amp;dyn VariableMap</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/fizyr/subst/commit/16bc8ca6bf6d64e1a8c3f2d2686212ae7c8669c3"><code>16bc8ca</code></a>
Bump version to 0.2.3.</li>
<li><a
href="https://github.com/fizyr/subst/commit/3a96c77f3e4ccfe084f3c1be9e277d65169ffc6e"><code>3a96c77</code></a>
Allow publishing to crates.io.</li>
<li><a
href="https://github.com/fizyr/subst/commit/3e7b744550989334d4a1f802ec297ce4447ac417"><code>3e7b744</code></a>
Update CHANGELOG.</li>
<li><a
href="https://github.com/fizyr/subst/commit/b68c7875e17d8154f581bd3306aebc3226080421"><code>b68c787</code></a>
Add test for <code>&amp;dyn VariableMap</code> in the yaml
submodule.</li>
<li><a
href="https://github.com/fizyr/subst/commit/0ff0225719a096893a7be6a9098ce434ac0aaf4f"><code>0ff0225</code></a>
Merge pull request <a
href="https://redirect.github.com/fizyr/subst/issues/5">#5</a> from
andylizi/trait-object</li>
<li><a
href="https://github.com/fizyr/subst/commit/d351a2d5043a196e67e40a6e47c092aab85ccd90"><code>d351a2d</code></a>
Add test for &amp;dyn VariableMap.</li>
<li><a
href="https://github.com/fizyr/subst/commit/504e15e53ba4d380f956945addf086c239d4a217"><code>504e15e</code></a>
Merge pull request <a
href="https://redirect.github.com/fizyr/subst/issues/6">#6</a> from
andylizi/arbitrary-hasher</li>
<li><a
href="https://github.com/fizyr/subst/commit/93dac6d1f306baf960a2ba58b7110812b2ace735"><code>93dac6d</code></a>
Support arbitrary hasher for <code>VariableMap</code></li>
<li><a
href="https://github.com/fizyr/subst/commit/e1be88539a31e5685f86d671cef52e7b0984cb41"><code>e1be885</code></a>
Support <code>&amp;dyn VariableMap</code></li>
<li>See full diff in <a
href="https://github.com/fizyr/subst/compare/v0.2.2...v0.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=subst&package-manager=cargo&previous-version=0.2.2&new-version=0.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Allow the `dst` in `mbtiles copy <src> <dst>` command to already
contain data, merging tilesets
* Add `mbtiles copy --on-duplicate (override|ignore|abort)`

---------

Co-authored-by: rstanciu <[email protected]>
Co-authored-by: Yuri Astrakhan <[email protected]>
@lefuturiste
Copy link
Author

lefuturiste commented Aug 30, 2024

update : I'm still working on it,
I'm waiting for another PR upstream to be merged

It's ok, I'm patient. In 1 year may be this will be merged xD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants