{"id":13820855,"url":"https://github.com/czerwonk/bird_exporter","last_synced_at":"2026-02-21T01:04:43.439Z","repository":{"id":37335668,"uuid":"74847556","full_name":"czerwonk/bird_exporter","owner":"czerwonk","description":"Bird protocol state exporter for bird routing daemon to use with https://prometheus.io/","archived":false,"fork":false,"pushed_at":"2026-02-04T06:45:33.000Z","size":6715,"stargazers_count":200,"open_issues_count":12,"forks_count":51,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-02-13T03:52:33.352Z","etag":null,"topics":["bird","exporter","prometheus","routing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/czerwonk.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-11-26T19:58:23.000Z","updated_at":"2026-02-12T19:25:51.000Z","dependencies_parsed_at":"2022-08-29T16:20:12.654Z","dependency_job_id":"82b2eebf-c17b-40a8-84cf-1dc904bd3f0a","html_url":"https://github.com/czerwonk/bird_exporter","commit_stats":{"total_commits":229,"total_committers":25,"mean_commits":9.16,"dds":0.5458515283842795,"last_synced_commit":"564872161a2f45ce0cca8c0d2eb2c4d70ba4c0fb"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/czerwonk/bird_exporter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/czerwonk%2Fbird_exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/czerwonk%2Fbird_exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/czerwonk%2Fbird_exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/czerwonk%2Fbird_exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/czerwonk","download_url":"https://codeload.github.com/czerwonk/bird_exporter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/czerwonk%2Fbird_exporter/sbom","scorecard":{"id":314997,"data":{"date":"2025-08-11","repo":{"name":"github.com/czerwonk/bird_exporter","commit":"b7ff18f9e130fef48ef8731b303867742fd17f22"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Maintained","score":3,"reason":"4 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":3,"reason":"Found 6/16 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/docker-publish.yml:26","Warn: no topLevel permission defined: .github/workflows/docker-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":4,"reason":"dependency not pinned by hash detected -- score normalized to 4","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker-publish.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/czerwonk/bird_exporter/docker-publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-publish.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/czerwonk/bird_exporter/docker-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/czerwonk/bird_exporter/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/czerwonk/bird_exporter/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/czerwonk/bird_exporter/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/czerwonk/bird_exporter/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/czerwonk/bird_exporter/test.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1","Warn: containerImage not pinned by hash: Dockerfile:6: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   4 out of   6 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docker-publish.yml:23"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 1.4.3 not signed: https://api.github.com/repos/czerwonk/bird_exporter/releases/126731111","Warn: release artifact 1.4.2 not signed: https://api.github.com/repos/czerwonk/bird_exporter/releases/107455811","Warn: release artifact 1.4.1 not signed: https://api.github.com/repos/czerwonk/bird_exporter/releases/59305940","Warn: release artifact 1.4.0 not signed: https://api.github.com/repos/czerwonk/bird_exporter/releases/58087899","Warn: release artifact 1.3.0 not signed: https://api.github.com/repos/czerwonk/bird_exporter/releases/57106103","Warn: release artifact 1.4.3 does not have provenance: https://api.github.com/repos/czerwonk/bird_exporter/releases/126731111","Warn: release artifact 1.4.2 does not have provenance: https://api.github.com/repos/czerwonk/bird_exporter/releases/107455811","Warn: release artifact 1.4.1 does not have provenance: https://api.github.com/repos/czerwonk/bird_exporter/releases/59305940","Warn: release artifact 1.4.0 does not have provenance: https://api.github.com/repos/czerwonk/bird_exporter/releases/58087899","Warn: release artifact 1.3.0 does not have provenance: https://api.github.com/repos/czerwonk/bird_exporter/releases/57106103"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T23:59:37.083Z","repository_id":37335668,"created_at":"2025-08-17T23:59:37.084Z","updated_at":"2025-08-17T23:59:37.084Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29669877,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T00:11:43.526Z","status":"ssl_error","status_checked_at":"2026-02-20T23:52:33.807Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bird","exporter","prometheus","routing"],"created_at":"2024-08-04T08:01:10.459Z","updated_at":"2026-02-21T01:04:43.405Z","avatar_url":"https://github.com/czerwonk.png","language":"Go","funding_links":[],"categories":["others"],"sub_categories":[],"readme":"# bird_exporter\n[![Go Report Card](https://goreportcard.com/badge/github.com/czerwonk/bird_exporter)](https://goreportcard.com/report/github.com/czerwonk/bird_exporter)\n\nMetric exporter for bird routing daemon to use with Prometheus.\n\n## Remarks\nSince bird_exporter uses the bird unix sockets, bird has to be installed on the same machine as bird_exporter. Also the user executing bird_exporter must have permission to access the bird socket files.\n\n### Bird configuration\nTo get meaningful uptime information bird has to be configured this way:\n```\ntimeformat protocol     iso long;\n```\n\n## Important information for users of bird 2.0+\nVersion 2.0 of bird routing daemon does support IPv4 and IPv6 in one single daemon now.\nFor further information see [here](https://gitlab.labs.nic.cz/labs/bird/wikis/transition-notes-to-bird-2).\nSince version 1.1 bird_exporter can be used with bird 2.0+ using the `-bird.v2` parameter.\nWhen using this parameter bird_exporter queries the same bird socket for IPv4 and IPv6.\nIn this mode the IP protocol is determined by the channel information and parameters `-bird.ipv4`, `-bird.ipv6` and `-bird.socket6` are ignored.\n\n## Metric formats\nIn version 1.0 a new metric format was introduced.\nTo prevent a breaking change the new format is optional and can be enabled by using the ```-format.new``` flag.\nThe new format handles protocols more generic and allows a better query structure.\nAlso it adheres more to the metric naming best practices.\nIn both formats protocol specific metrics are prefixed with the protocol name (e.g. OSPF running metric).\n\nSince verson 1.3 the new metric format is the default.\n\nThis is a short example of the different formats:\n\n### old format\n```\nbgp4_session_prefix_count_import{name=\"bgp1\"} 600000\nbgp6_session_prefix_count_import{name=\"bgp1\"} 50000\nospfv3_running{name=\"ospf1\"} 1\n```\n\n### new format\n```\nbird_protocol_prefix_import_count{name=\"bgp1\",proto=\"BGP\",ip_version=\"4\"} 600000\nbird_protocol_prefix_import_count{name=\"bgp1\",proto=\"BGP\",ip_version=\"6\"} 50000\nbird_ospfv3_running{name=\"ospf1\"} 1\n```\n\n### Default Port\nIn version 0.7.1 the default port changed to 9324 since port 9200 is the default port of Elasticsearch. The new port is now registered in the default port allocation list (https://github.com/prometheus/prometheus/wiki/Default-port-allocations)\n\n### Sockets\nIn version 0.8 communication to bird changed to sockets. The default socket path is ```/var/run/bird.ctl``` (for bird) and ```/var/run/bird6.ctl``` (for bird6). In case you are using different paths in your installation, the socket path can be specified by usind the ```-bird.socket``` (for bird) and ```-bird.socket6``` (for bird6) flag.\n\n## Install\n```\ngo get -u github.com/czerwonk/bird_exporter\n```\n\n## Usage\n```\nbird_exporter -format.new=true\n```\n\n## BIRD RS Dashboard\nthis sample dashboard was created by [openbsod](https://github.com/openbsod). Thanks for contributing!\n\n[https://grafana.com/grafana/dashboards/5259-bird-rs/](https://grafana.com/grafana/dashboards/5259-bird-rs/)\n\n![alt text](https://github.com/czerwonk/bird_exporter/blob/master/grafana/img/bird_exporter.png)\n\n## Features\n* BGP session state\n* OSPF neighbor/interface count\n* imported / exported / filtered prefix counts / route state changes (BGP, OSPF, Kernel, Static, Device, Direct, Babel)\n* protocol uptimes (BGP, OSPF, BFD)\n* BFD session status\n\n## Third Party Components\nThis software uses components of the following projects\n* Prometheus Go client library (https://github.com/prometheus/client_golang)\n\n## License\n(c) Daniel Czerwonk, 2016. Licensed under [MIT](LICENSE) license.\n\n## Prometheus\nsee https://prometheus.io/\n\n## Bird routing daemon\nsee http://bird.network.cz/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fczerwonk%2Fbird_exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fczerwonk%2Fbird_exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fczerwonk%2Fbird_exporter/lists"}