{"id":13582067,"url":"https://github.com/anas-aso/ssllabs_exporter","last_synced_at":"2026-02-15T03:08:38.604Z","repository":{"id":43294754,"uuid":"237309298","full_name":"anas-aso/ssllabs_exporter","owner":"anas-aso","description":"Getting deep analysis of the configuration of any SSL web server on the public Internet à la blackbox_exporter style.","archived":false,"fork":false,"pushed_at":"2025-04-23T16:32:11.000Z","size":118,"stargazers_count":49,"open_issues_count":5,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-23T16:52:43.699Z","etag":null,"topics":["prometheus","prometheus-exporter","security","ssl","ssllabs","tls"],"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/anas-aso.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,"zenodo":null}},"created_at":"2020-01-30T21:28:46.000Z","updated_at":"2025-04-23T16:31:11.000Z","dependencies_parsed_at":"2024-04-09T19:58:18.245Z","dependency_job_id":"e5301b99-17af-4b63-86c1-dd5bb9c78e85","html_url":"https://github.com/anas-aso/ssllabs_exporter","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/anas-aso/ssllabs_exporter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anas-aso%2Fssllabs_exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anas-aso%2Fssllabs_exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anas-aso%2Fssllabs_exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anas-aso%2Fssllabs_exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anas-aso","download_url":"https://codeload.github.com/anas-aso/ssllabs_exporter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anas-aso%2Fssllabs_exporter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29466925,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T01:01:38.065Z","status":"online","status_checked_at":"2026-02-15T02:00:07.449Z","response_time":118,"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":["prometheus","prometheus-exporter","security","ssl","ssllabs","tls"],"created_at":"2024-08-01T15:02:24.837Z","updated_at":"2026-02-15T03:08:38.585Z","avatar_url":"https://github.com/anas-aso.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# SSLLabs exporter\n[![Release](https://img.shields.io/github/release/anas-aso/ssllabs_exporter.svg?style=flat)](https://github.com/anas-aso/ssllabs_exporter/releases/latest)\n[![Build Status](https://github.com/anas-aso/ssllabs_exporter/workflows/test/badge.svg)](https://github.com/anas-aso/ssllabs_exporter/actions)\n[![Go Report Card](https://goreportcard.com/badge/github.com/anas-aso/ssllabs_exporter)](https://goreportcard.com/report/github.com/anas-aso/ssllabs_exporter)\n\nGetting deep analysis of the configuration of any SSL web server on the public Internet à la blackbox_exporter style.\n\nThis exporter relays the target server hostname to [SSLLabs API](https://www.ssllabs.com/ssltest), parses the result and export it as Prometheus metrics. It covers retries in case of failures and simplifies the assessment result.\n\n## SSLLabs\n\u003e SSL Labs is a non-commercial research effort, run by [Qualys](https://www.qualys.com/), to better understand how SSL, TLS, and PKI technologies are used in practice.\n\nsource: https://www.ssllabs.com/about/assessment.html\n\nThis exporter implements SSLLabs API client that would get you the same results as if you use the [web interface](https://www.ssllabs.com/ssltest/).\n\n## Configuration\nssllabs_exporter doesn't require any configuration file and the available flags can be found as below :\n```bash\n$ ssllabs_exporter --help\nusage: ssllabs_exporter [\u003cflags\u003e]\n\nFlags:\n  --help                     Show context-sensitive help (also try --help-long and --help-man).\n  --listen-address=\":19115\"  The address to listen on for HTTP requests.\n  --timeout=\"10m\"            Time duration before canceling an ongoing probe such as 30m or 1h5m. This value must be at least 1m. Valid duration units are ns, us (or µs), ms, s, m, h.\n  --log-level=debug          Printed logs level.\n  --cache-retention=\"1h\"     Time duration to keep entries in cache such as 30m or 1h5m. Valid duration units are ns, us (or µs), ms, s, m, h.\n  --cache-ignore-failed      Do not cache failed results due to intermittent SSLLabs issues.\n  --version                  Show application version.\n```\n\n## Docker\nThe Prometheus exporter is available as a [docker image](https://hub.docker.com/repository/docker/anasaso/ssllabs_exporter) :\n```\ndocker run --rm -it anasaso/ssllabs_exporter:latest --help\n```\n\n## How To Use it\nDeploy the exporter to your infrastructure. Kubernetes deployment and service Yaml file are provided [here](examples/kubernetes) as an example.\n\nThen adjust Prometheus config to add a new scrape configuration. Examples of how this look like can be found [here](examples/prometheus) (it includes both static config and Kubernetes service discovery to auto check all the cluster ingresses).\n\nOnce deployed, Prometheus Targets view page should look like this : \n![prometheus-targets-view](https://i.imgur.com/fJCun72.png \"Prometheus Targets View\")\n\nThe Grafana dashboard below is available [here](examples/grafana_dashboard.json).\n![grafana-dashboard](https://i.imgur.com/T00RtYk.png \"Grafana Dashboard\")\n\n## Available metrics\n| Metric Name | Description |\n|----|-----------|\n| ssllabs_probe_duration_seconds | how long the assessment took in seconds |\n| ssllabs_probe_success | whether we were able to fetch an assessment result from SSLLabs API (value of 1) or not (value of 0) regardless of the result content |\n| ssllabs_grade | the grade of the target host |\n| ssllabs_grade_time_seconds | when the result was generated in Unix time |\n\n#### `ssllabs_grade` possible values:\n  - `1` : Assessment was successful and the grade is exposed in the `grade` label of the metric.\n  - `0` : Target host doesn't have any endpoint (list of returned [endpoints](https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs-v3.md#host) is empty).\n  - `-1` : Error while processing the assessment (e.g rate limiting from SSLLabs API side).\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanas-aso%2Fssllabs_exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanas-aso%2Fssllabs_exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanas-aso%2Fssllabs_exporter/lists"}