{"id":45311312,"url":"https://github.com/chatwork/sendgrid-stats-exporter","last_synced_at":"2026-02-21T07:23:35.637Z","repository":{"id":39641880,"uuid":"310249099","full_name":"chatwork/sendgrid-stats-exporter","owner":"chatwork","description":"Prometheus exporter for SendGrid daily metrics exposed by SendGrid Stats API(v3).","archived":false,"fork":false,"pushed_at":"2024-06-18T19:24:55.000Z","size":92,"stargazers_count":17,"open_issues_count":6,"forks_count":11,"subscribers_count":59,"default_branch":"main","last_synced_at":"2025-03-05T19:52:09.124Z","etag":null,"topics":["prometheus-exporter","sendgrid"],"latest_commit_sha":null,"homepage":"","language":"Go","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/chatwork.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}},"created_at":"2020-11-05T09:27:27.000Z","updated_at":"2024-07-03T20:27:15.000Z","dependencies_parsed_at":"2023-02-09T20:46:26.690Z","dependency_job_id":null,"html_url":"https://github.com/chatwork/sendgrid-stats-exporter","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/chatwork/sendgrid-stats-exporter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatwork%2Fsendgrid-stats-exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatwork%2Fsendgrid-stats-exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatwork%2Fsendgrid-stats-exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatwork%2Fsendgrid-stats-exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chatwork","download_url":"https://codeload.github.com/chatwork/sendgrid-stats-exporter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatwork%2Fsendgrid-stats-exporter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29676198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T06:23:40.028Z","status":"ssl_error","status_checked_at":"2026-02-21T06:23:39.222Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["prometheus-exporter","sendgrid"],"created_at":"2026-02-21T07:23:35.115Z","updated_at":"2026-02-21T07:23:35.632Z","avatar_url":"https://github.com/chatwork.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sendgrid-stats-exporter\n\nPrometheus exporter for SendGrid daily metrics exposed by SendGrid Stats API(v3).\n\n    +---------------------------+                          +------------+                        +--------------+\n    |  SendGrid Stats API (v3)  |---(collect /v3/stats)---\u003e|  exporter  |\u003c---(scrape /metrics)---|  Prometheus  |\n    +---------------------------+                          +------------+                        +--------------+\n\n## Usage\n\n```\n$ make\n$ ./dist/exporter --sendgrid.api-key='secret' --web.listen-address=':9154' --web.disable-exporter-metrics\n```\n\n```\n$ curl localhost:9154/-/healthy\n$ curl localhost:9154/metrics\n```\n\n```\n$ ./exporter -h\nusage: exporter [\u003cflags\u003e]\n\nFlags:\n  -h, --help                  Show context-sensitive help (also try --help-long and --help-man).\n      --web.listen-address=\":9154\"\n                              Address to listen on for web interface and telemetry.\n      --web.disable-exporter-metrics\n                              Exclude metrics about the exporter itself (promhttp_*, process_*, go_*).\n      --sendgrid.api-key=\"secret\"\n                              [Required] Set SendGrid API key\n      --sendgrid.username=\"\"  [Optional] Set SendGrid username as a label for each metrics. This is for identifying multiple SendGrid users metrics.\n      --sendgrid.location=\"\"    [Optional] Set a zone name.(e.g. 'Asia/Tokyo') The default is UTC.\n      --sendgrid.time-offset=0  [Optional] Specify the offset in second from UTC as an integer.(e.g. '32400') This needs to be set along with location.\n      --sendgrid.accumulated-metrics=False [Optional] Accumulated SendGrid Metrics by month, to calculate monthly email limit.\n      --log.level=info        Only log messages with the given severity or above. One of: [debug, info, warn, error]\n      --log.format=logfmt     Output format of log messages. One of: [logfmt, json]\n      --version               Show application version.\n```\n\n## Endpoints\n\nName     | Description\n---------|-------------\n`/metrics` | get metrics\n`/-/healthy` | for health check\n\n## Metrics\n\nName     | Description\n---------|------------\nblocks | The number of emails that were not allowed to be delivered by ISPs.\nbounce_drops | The number of emails that were dropped because of a bounce.\nbounces | The number of emails that bounced instead of being delivered.\ndeferred | The number of emails that temporarily could not be delivered.\ndelivered | The number of emails SendGrid was able to confirm were actually delivered to a recipient.\ninvalid_emails | The number of recipients who had malformed email addresses or whose mail provider reported the address as invalid.\nprocessed | Requests from your website, application, or mail client via SMTP Relay or the API that SendGrid processed.\nrequests | The number of emails that were requested to be delivered.\nspam_report_drops | The number of emails that were dropped due to a recipient previously marking your emails as spam.\nspam_reports | The number of recipients who marked your email as spam.\nunique_clicks | The number of unique recipients who clicked links in your emails.\nunique_opens | The number of unique recipients who opened your emails.\nunsubscribe_drops | The number of emails dropped due to a recipient unsubscribing from your emails.\nunsubscribes | The number of recipients who unsubscribed from your emails.\n\n## Dashboard\n\nA sample dashbord using those metrics has been published [here](https://grafana.com/grafana/dashboards/16319).\n\n### Running with Docker\n\n```\n$ docker run -d -p 9154:9154 chatwork/sendgrid-stats-exporter\n```\n\n#### Running with `docker-compose`\n\n```\n$ cp .env.example .env\n$ vi .env\n$ docker-compose up -d\n```\n\nYou can check the metrics by accessing Prometheus ([http://127.0.0.1:9200]()).\n\n#### Running with `helm`\n\nhttps://github.com/chatwork/sendgrid-stats-exporter/tree/main/charts\n\n## Building\n\n### Building locally\n\n```\n$ make\n```\n\n### Building with Docker\n\n```\n$ docker build -t sendgrid-stats-exporter .\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchatwork%2Fsendgrid-stats-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchatwork%2Fsendgrid-stats-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchatwork%2Fsendgrid-stats-exporter/lists"}