{"id":13739826,"url":"https://github.com/softwarefactory-project/dhall-prometheus","last_synced_at":"2026-06-01T12:31:32.895Z","repository":{"id":56138689,"uuid":"242251402","full_name":"softwarefactory-project/dhall-prometheus","owner":"softwarefactory-project","description":"Prometheus configuration with Dhall ","archived":false,"fork":false,"pushed_at":"2024-08-01T18:26:06.000Z","size":60,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-03T01:11:01.762Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dhall","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/softwarefactory-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-21T23:56:24.000Z","updated_at":"2024-08-01T18:26:10.000Z","dependencies_parsed_at":"2024-11-19T02:02:15.272Z","dependency_job_id":null,"html_url":"https://github.com/softwarefactory-project/dhall-prometheus","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/softwarefactory-project/dhall-prometheus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwarefactory-project%2Fdhall-prometheus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwarefactory-project%2Fdhall-prometheus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwarefactory-project%2Fdhall-prometheus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwarefactory-project%2Fdhall-prometheus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softwarefactory-project","download_url":"https://codeload.github.com/softwarefactory-project/dhall-prometheus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwarefactory-project%2Fdhall-prometheus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33775857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T04:00:38.068Z","updated_at":"2026-06-01T12:31:32.878Z","avatar_url":"https://github.com/softwarefactory-project.png","language":"Dhall","funding_links":[],"categories":["Libraries"],"sub_categories":[],"readme":"# dhall-prometheus\n\n`dhall-prometheus` contains [Dhall][dhall-lang] bindings to [Prometheus][prometheus] configuration.\nThe schema is generated from json SchemaStore.\n\n## Example\n\n```dhall\n-- ./examples/demo.dhall\nlet Prometheus = ../package.dhall\n\nlet web_monitor_list =\n      [ \"https://www.softwarefactory-project.io\"\n      , \"https://softwarefactory-project.io/zuul/api/info\"\n      , \"https://review.rdoproject.org/zuul/api/info\"\n      , \"https://ovirt.softwarefactory-project.io/zuul/api/info\"\n      , \"https://ansible.softwarefactory-project.io/zuul/api/info\"\n      ]\n\nlet host_list = [ \"bridge:9100\", \"zuul:9100\", \"nodepool:9100\" ]\n\nin  Prometheus.Config::{\n    , global = Some Prometheus.Global::{\n      , scrape_interval = Some \"1m\"\n      , scrape_timeout = Some \"10s\"\n      , evaluation_interval = Some \"1m\"\n      }\n    , alerting = Some Prometheus.Alerting::{\n      , alertmanagers = Some\n        [ Prometheus.Alertmanager::{\n          , path_prefix = Some \"/alertmanager\"\n          , static_configs = Some\n            [ Prometheus.StaticConfig::{ targets = Some [ \"localhost:9093\" ] } ]\n          }\n        ]\n      }\n    , scrape_configs = Some\n      [ Prometheus.ScrapeConfig::{\n        , job_name = Some \"node\"\n        , static_configs = Some\n          [ Prometheus.StaticConfig::{\n            , targets = Some host_list\n            , labels = Some (Prometheus.Labels.severity \"critical\")\n            }\n          ]\n        }\n      , Prometheus.ScrapeConfig::{\n        , job_name = Some \"federate\"\n        , honor_labels = Some True\n        , metrics_path = Some \"/federate\"\n        , params = Some\n          [ { mapKey = \"match[]\"\n            , mapValue = [ \"{job='prometheus'}\", \"{__name__=~'job:.*'}\" ]\n            }\n          ]\n        , static_configs = Some\n          [ Prometheus.StaticConfig::{ targets = Some host_list } ]\n        }\n      , Prometheus.ScrapeConfig::{\n        , job_name = Some \"blackbox\"\n        , static_configs = Some\n          [ Prometheus.StaticConfig::{ targets = Some web_monitor_list } ]\n        , scrape_interval = Some \"5m\"\n        , metrics_path = Some \"/probe\"\n        , params = Some [ { mapKey = \"module\", mapValue = [ \"http_2xx\" ] } ]\n        , relabel_configs = Some\n          [ Prometheus.RelabelConfig::{\n            , source_labels = Some [ \"__address__\" ]\n            , target_label = Some \"__param_target\"\n            }\n          , Prometheus.RelabelConfig::{\n            , source_labels = Some [ \"__param_target\" ]\n            , target_label = Some \"instance\"\n            }\n          , Prometheus.RelabelConfig::{\n            , target_label = Some \"__address__\"\n            , replacement =\n                let note = \"# Blackbox exporter\" in Some \"127.0.0.1:9115\"\n            }\n          ]\n        }\n      ]\n    }\n\n```\n\n```yaml\n# dhall-to-yaml --file examples/demo.dhall\nalerting:\n  alertmanagers:\n    - path_prefix: /alertmanager\n      static_configs:\n        - targets:\n            - localhost:9093\nglobal:\n  evaluation_interval: \"1m\"\n  scrape_interval: \"1m\"\n  scrape_timeout: \"10s\"\nscrape_configs:\n  - job_name: node\n    static_configs:\n      - labels:\n          severity: critical\n        targets:\n          - bridge:9100\n          - zuul:9100\n          - nodepool:9100\n  - honor_labels: true\n    job_name: federate\n    metrics_path: /federate\n    params:\n      \"match[]\":\n        - \"{job='prometheus'}\"\n        - \"{__name__=~'job:.*'}\"\n    static_configs:\n      - targets:\n          - bridge:9100\n          - zuul:9100\n          - nodepool:9100\n  - job_name: blackbox\n    metrics_path: /probe\n    params:\n      module:\n        - http_2xx\n    relabel_configs:\n      - source_labels:\n          - \"__address__\"\n        target_label: \"__param_target\"\n      - source_labels:\n          - \"__param_target\"\n        target_label: instance\n      - replacement: \"127.0.0.1:9115\"\n        target_label: \"__address__\"\n    scrape_interval: \"5m\"\n    static_configs:\n      - targets:\n          - https://www.softwarefactory-project.io\n          - https://softwarefactory-project.io/zuul/api/info\n          - https://review.rdoproject.org/zuul/api/info\n          - https://ovirt.softwarefactory-project.io/zuul/api/info\n          - https://ansible.softwarefactory-project.io/zuul/api/info\n\n```\n\nTo define custom labels, use the `Labels.mapText` function or create your own [JSON/Type][JSON/Type]:\n\n```\n-- ./examples/labels.dhall\nlet Prometheus = ../package.dhall\n\nin  Prometheus.Config::{\n    , global = Some Prometheus.Global::{\n      , external_labels = Some\n          (Prometheus.Labels.mapText (toMap { my-label = \"custom-value\" }))\n      }\n    }\n\n```\n\n```yaml\n# dhall-to-yaml --file examples/labels.dhall\nglobal:\n  external_labels:\n    my-label: custom-value\n\n```\n\n## Changes\n\nFrozen packages are available in the tag commit.\n\n### 0.1.0\n\n- Initial release\n\n[JSON/Type]: https://github.com/dhall-lang/dhall-lang/blob/master/Prelude/JSON/Type.dhall\n[dhall-lang]: https://dhall-lang.org\n[Prometheus]: https://prometheus.io\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftwarefactory-project%2Fdhall-prometheus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftwarefactory-project%2Fdhall-prometheus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftwarefactory-project%2Fdhall-prometheus/lists"}