Compare commits

...

4 Commits

Author SHA1 Message Date
Joao P Dubas
07d863c063 chore: remove unused service
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
pgcli is defined in a override file
2022-04-24 00:47:06 +00:00
Joao P Dubas
d0a50f684d chore (metric): enable ecto and absinthe 2022-04-24 00:47:06 +00:00
Joao P Dubas
4d1cdc5166 feat: add prom_ex to expose system metrics 2022-04-24 00:47:06 +00:00
423b26db4c feat: enable renovate (#7)
All checks were successful
continuous-integration/drone/push Build is passing
Welcome to [Renovate](https://github.com/renovatebot/renovate)! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.

---
### Detected Package Files

 * `docker-compose.yml` (docker-compose)
 * `.drone.yml` (droneci)
 * `.github/workflows/ci.yml` (github-actions)
 * `mix.exs` (mix)

### Configuration Summary

Based on the default config's presets, Renovate will:

  - Start dependency updates only once this onboarding PR is merged
  - Enable Renovate Dependency Dashboard creation
  - If semantic commits detected, use semantic commit type <code>fix</code> for dependencies and <code>chore</code> for all others
  - Ignore `node_modules`, `bower_components`, `vendor` and various test/tests directories
  - Autodetect whether to pin dependencies or maintain ranges
  - Rate limit PR creation to a maximum of two per hour
  - Limit to maximum 10 open PRs at any time
  - Group known monorepo packages together
  - Use curated list of recommended non-monorepo package groupings
  - Fix some problems with very old Maven commons versions
  - Ignore spring cloud 1.x releases
  - Ignore web3j 5.0.0 release
  - Ignore http4s digest-based 1.x milestones
  - Use node versioning for @types/node
  - Limit concurrent requests to reduce load on Repology servers until we can fix this properly, see issue 10133
  - Do not upgrade from Alpine stable to edge

🔡 Would you like to change the way Renovate is upgrading your dependencies? Simply edit the `renovate.json` in this branch with your custom config and the list of Pull Requests in the "What to Expect" section below will be updated the next time Renovate runs.

---

### What to Expect

With your current configuration, Renovate will create 7 Pull Requests:

<details>
<summary>chore(deps): update styfle/cancel-workflow-action action to v0.9.1</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/styfle-cancel-workflow-action-0.x`
  - Merge into: `main`
  - Upgrade [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action) to `0.9.1`

</details>

<details>
<summary>chore(deps): update dependency gettext to ~> 0.19</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/gettext-0.x`
  - Merge into: `main`
  - Upgrade gettext to `~> 0.19`

</details>

<details>
<summary>chore(deps): update dependency phoenix_live_dashboard to ~> 0.6</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/phoenix_live_dashboard-0.x`
  - Merge into: `main`
  - Upgrade phoenix_live_dashboard to `~> 0.6`

</details>

<details>
<summary>chore(deps): update dependency telemetry_metrics to ~> 0.6</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/telemetry_metrics-0.x`
  - Merge into: `main`
  - Upgrade telemetry_metrics to `~> 0.6`

</details>

<details>
<summary>chore(deps): update romeovs/lcov-reporter-action action to v0.3.1</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/romeovs-lcov-reporter-action-0.x`
  - Merge into: `main`
  - Upgrade [romeovs/lcov-reporter-action](https://github.com/romeovs/lcov-reporter-action) to `v0.3.1`

</details>

<details>
<summary>chore(deps): update actions/cache action to v3</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/actions-cache-3.x`
  - Merge into: `main`
  - Upgrade [actions/cache](https://github.com/actions/cache) to `v3`

</details>

<details>
<summary>chore(deps): update actions/checkout action to v3</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/actions-checkout-3.x`
  - Merge into: `main`
  - Upgrade [actions/checkout](https://github.com/actions/checkout) to `v3`

</details>

<br />

🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for `prhourlylimit` for details.

---

 Got questions? Check out Renovate's [Docs](https://docs.renovatebot.com/), particularly the Getting Started section.
If you need any further assistance then you can also [request help here](https://github.com/renovatebot/renovate/discussions).

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

Reviewed-on: #7
Co-authored-by: renovate-bot <renovate-bot@dubas.dev>
Co-committed-by: renovate-bot <renovate-bot@dubas.dev>
2022-04-23 23:29:35 +00:00
7 changed files with 120 additions and 15 deletions

View File

@ -14,6 +14,13 @@ config :wabanex, Wabanex.Repo,
migration_primary_key: [type: :binary_id], migration_primary_key: [type: :binary_id],
migration_foreign_key: [type: :binary_id] migration_foreign_key: [type: :binary_id]
config :wabanex, Wabanex.PromEx,
disabled: false,
manual_metrics_start_delay: :no_delay,
drop_metrics_groups: [],
grafana: :disabled,
metrics_server: :disabled
# Configures the endpoint # Configures the endpoint
config :wabanex, WabanexWeb.Endpoint, config :wabanex, WabanexWeb.Endpoint,
url: [host: "localhost"], url: [host: "localhost"],

View File

@ -32,21 +32,6 @@ services:
working_dir: /opt/app working_dir: /opt/app
entrypoint: sleep entrypoint: sleep
command: infinity command: infinity
pgcli:
image: 'joaodubas/pgcli:latest'
hostname: development
depends_on:
- db
environment:
PGUSER: *db_user
PGPASSWORD: *db_pass
PGHOST: *db_host
PGDATABASE: wabanex_dev
volumes:
- './priv/docker/pgcli:/root/.config/pgcli'
restart: unless-stopped
entrypoint: sleep
command: 3650d
volumes: volumes:
db_data: {} db_data: {}

View File

@ -7,6 +7,8 @@ defmodule Wabanex.Application do
def start(_type, _args) do def start(_type, _args) do
children = [ children = [
# Start the PromEx supervisor
Wabanex.PromEx,
# Start the Ecto repository # Start the Ecto repository
Wabanex.Repo, Wabanex.Repo,
# Start the Telemetry supervisor # Start the Telemetry supervisor

102
lib/wabanex/prom_ex.ex Normal file
View File

@ -0,0 +1,102 @@
defmodule Wabanex.PromEx do
@moduledoc """
Be sure to add the following to finish setting up PromEx:
1. Update your configuration (config.exs, dev.exs, prod.exs, releases.exs, etc) to
configure the necessary bit of PromEx. Be sure to check out `PromEx.Config` for
more details regarding configuring PromEx:
```
config :wabanex, Wabanex.PromEx,
disabled: false,
manual_metrics_start_delay: :no_delay,
drop_metrics_groups: [],
grafana: :disabled,
metrics_server: :disabled
```
2. Add this module to your application supervision tree. It should be one of the first
things that is started so that no Telemetry events are missed. For example, if PromEx
is started after your Repo module, you will miss Ecto's init events and the dashboards
will be missing some data points:
```
def start(_type, _args) do
children = [
Wabanex.PromEx,
...
]
...
end
```
3. Update your `endpoint.ex` file to expose your metrics (or configure a standalone
server using the `:metrics_server` config options). Be sure to put this plug before
your `Plug.Telemetry` entry so that you can avoid having calls to your `/metrics`
endpoint create their own metrics and logs which can pollute your logs/metrics given
that Prometheus will scrape at a regular interval and that can get noisy:
```
defmodule WabanexWeb.Endpoint do
use Phoenix.Endpoint, otp_app: :wabanex
...
plug PromEx.Plug, prom_ex_module: Wabanex.PromEx
...
end
```
4. Update the list of plugins in the `plugins/0` function return list to reflect your
application's dependencies. Also update the list of dashboards that are to be uploaded
to Grafana in the `dashboards/0` function.
"""
use PromEx, otp_app: :wabanex
alias PromEx.Plugins
@impl true
def plugins do
[
# PromEx built in plugins
Plugins.Application,
Plugins.Beam,
# {Plugins.Phoenix, router: WabanexWeb.Router, endpoint: WabanexWeb.Endpoint},
Plugins.Ecto,
# Plugins.Oban,
# Plugins.PhoenixLiveView,
Plugins.Absinthe
# Plugins.Broadway,
# Add your own PromEx metrics plugins
# Wabanex.Users.PromExPlugin
]
end
@impl true
def dashboard_assigns do
[
datasource_id: "WABANEX_SERVICE",
default_selected_interval: "30s"
]
end
@impl true
def dashboards do
[
# PromEx built in Grafana dashboards
{:prom_ex, "application.json"},
{:prom_ex, "beam.json"},
# {:prom_ex, "phoenix.json"},
{:prom_ex, "ecto.json"},
# {:prom_ex, "oban.json"},
# {:prom_ex, "phoenix_live_view.json"},
{:prom_ex, "absinthe.json"}
# {:prom_ex, "broadway.json"},
# Add your dashboard definitions here with the format: {:otp_app, "path_in_priv"}
# {:wabanex, "/grafana_dashboards/user_metrics.json"}
]
end
end

View File

@ -43,6 +43,7 @@ defmodule Wabanex.MixProject do
{:phoenix, "~> 1.6.0"}, {:phoenix, "~> 1.6.0"},
{:phoenix_ecto, "~> 4.1"}, {:phoenix_ecto, "~> 4.1"},
{:phoenix_live_dashboard, "~> 0.4"}, {:phoenix_live_dashboard, "~> 0.4"},
{:prom_ex, "~> 1.7"},
{:plug_cowboy, "~> 2.0"}, {:plug_cowboy, "~> 2.0"},
{:postgrex, ">= 0.0.0"}, {:postgrex, ">= 0.0.0"},
{:telemetry_metrics, "~> 0.4"}, {:telemetry_metrics, "~> 0.4"},

View File

@ -39,8 +39,10 @@
"plug_cowboy": {:hex, :plug_cowboy, "2.5.2", "62894ccd601cf9597e2c23911ff12798a8a18d237e9739f58a6b04e4988899fe", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "ea6e87f774c8608d60c8d34022a7d073bd7680a0a013f049fc62bf35efea1044"}, "plug_cowboy": {:hex, :plug_cowboy, "2.5.2", "62894ccd601cf9597e2c23911ff12798a8a18d237e9739f58a6b04e4988899fe", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "ea6e87f774c8608d60c8d34022a7d073bd7680a0a013f049fc62bf35efea1044"},
"plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"}, "plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"},
"postgrex": {:hex, :postgrex, "0.16.2", "0f83198d0e73a36e8d716b90f45f3bde75b5eebf4ade4f43fa1f88c90a812f74", [:mix], [{:connection, "~> 1.1", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "a9ea589754d9d4d076121090662b7afe155b374897a6550eb288f11d755acfa0"}, "postgrex": {:hex, :postgrex, "0.16.2", "0f83198d0e73a36e8d716b90f45f3bde75b5eebf4ade4f43fa1f88c90a812f74", [:mix], [{:connection, "~> 1.1", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "a9ea589754d9d4d076121090662b7afe155b374897a6550eb288f11d755acfa0"},
"prom_ex": {:hex, :prom_ex, "1.7.1", "39331ee3fe6f9a8587d8208bf9274a253bb80281700e127dd18786cda5e08c37", [:mix], [{:absinthe, ">= 1.6.0", [hex: :absinthe, repo: "hexpm", optional: true]}, {:broadway, ">= 1.0.2", [hex: :broadway, repo: "hexpm", optional: true]}, {:ecto, ">= 3.5.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:finch, "~> 0.10.2", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}, {:oban, ">= 2.4.0", [hex: :oban, repo: "hexpm", optional: true]}, {:phoenix, ">= 1.5.0", [hex: :phoenix, repo: "hexpm", optional: true]}, {:phoenix_live_view, ">= 0.14.0", [hex: :phoenix_live_view, repo: "hexpm", optional: true]}, {:plug, ">= 1.12.1", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, "~> 2.5.1", [hex: :plug_cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6.1", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}, {:telemetry_metrics_prometheus_core, "~> 1.0.2", [hex: :telemetry_metrics_prometheus_core, repo: "hexpm", optional: false]}, {:telemetry_poller, "~> 1.0.0", [hex: :telemetry_poller, repo: "hexpm", optional: false]}], "hexpm", "4c978872b88a929833925a0f4d0561824804c671fdd04581e765509ed0a6ed08"},
"ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"}, "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"},
"telemetry": {:hex, :telemetry, "1.0.0", "0f453a102cdf13d506b7c0ab158324c337c41f1cc7548f0bc0e130bbf0ae9452", [:rebar3], [], "hexpm", "73bc09fa59b4a0284efb4624335583c528e07ec9ae76aca96ea0673850aec57a"}, "telemetry": {:hex, :telemetry, "1.0.0", "0f453a102cdf13d506b7c0ab158324c337c41f1cc7548f0bc0e130bbf0ae9452", [:rebar3], [], "hexpm", "73bc09fa59b4a0284efb4624335583c528e07ec9ae76aca96ea0673850aec57a"},
"telemetry_metrics": {:hex, :telemetry_metrics, "0.6.1", "315d9163a1d4660aedc3fee73f33f1d355dcc76c5c3ab3d59e76e3edf80eef1f", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7be9e0871c41732c233be71e4be11b96e56177bf15dde64a8ac9ce72ac9834c6"}, "telemetry_metrics": {:hex, :telemetry_metrics, "0.6.1", "315d9163a1d4660aedc3fee73f33f1d355dcc76c5c3ab3d59e76e3edf80eef1f", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7be9e0871c41732c233be71e4be11b96e56177bf15dde64a8ac9ce72ac9834c6"},
"telemetry_metrics_prometheus_core": {:hex, :telemetry_metrics_prometheus_core, "1.0.2", "c98b1c580de637bfeac00db41b9fb91fb4c3548ee3d512a8ed7299172312eaf3", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "48351a0d56f80e38c997b44232b1043e0a081670d16766eee920e6254175b730"},
"telemetry_poller": {:hex, :telemetry_poller, "1.0.0", "db91bb424e07f2bb6e73926fcafbfcbcb295f0193e0a00e825e589a0a47e8453", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b3a24eafd66c3f42da30fc3ca7dda1e9d546c12250a2d60d7b81d264fbec4f6e"}, "telemetry_poller": {:hex, :telemetry_poller, "1.0.0", "db91bb424e07f2bb6e73926fcafbfcbcb295f0193e0a00e825e589a0a47e8453", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b3a24eafd66c3f42da30fc3ca7dda1e9d546c12250a2d60d7b81d264fbec4f6e"},
} }

6
renovate.json Normal file
View File

@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
]
}