{"id":38810342,"url":"https://github.com/mjtrangoni/flexlm_exporter","last_synced_at":"2026-01-17T12:54:42.710Z","repository":{"id":40533414,"uuid":"107779392","full_name":"mjtrangoni/flexlm_exporter","owner":"mjtrangoni","description":"Prometheus exporter for FLEXlm License Manager information","archived":false,"fork":false,"pushed_at":"2025-12-12T08:27:23.000Z","size":4400,"stargazers_count":90,"open_issues_count":16,"forks_count":40,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-12-13T19:01:16.115Z","etag":null,"topics":["flexlm","license","license-management","metrics","prometheus","prometheus-exporter"],"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/mjtrangoni.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"notice":"NOTICE","maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-10-21T12:47:14.000Z","updated_at":"2025-12-12T08:27:22.000Z","dependencies_parsed_at":"2024-04-22T22:53:50.518Z","dependency_job_id":"e935278b-1f4f-4377-b25c-00348e43c5d9","html_url":"https://github.com/mjtrangoni/flexlm_exporter","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/mjtrangoni/flexlm_exporter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjtrangoni%2Fflexlm_exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjtrangoni%2Fflexlm_exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjtrangoni%2Fflexlm_exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjtrangoni%2Fflexlm_exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mjtrangoni","download_url":"https://codeload.github.com/mjtrangoni/flexlm_exporter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjtrangoni%2Fflexlm_exporter/sbom","scorecard":{"id":651785,"data":{"date":"2025-08-11","repo":{"name":"github.com/mjtrangoni/flexlm_exporter","commit":"e5c5370795f9b899fdd1483530ab15dacb4c4ed1"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.9,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"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":"Maintained","score":6,"reason":"7 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 6","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":2,"reason":"Found 3/15 approved changesets -- score normalized to 2","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":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/build.yml:5","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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: 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":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.0.13 not signed: https://api.github.com/repos/mjtrangoni/flexlm_exporter/releases/217835397","Warn: release artifact v0.0.12 not signed: https://api.github.com/repos/mjtrangoni/flexlm_exporter/releases/142503295","Warn: release artifact v0.0.11 not signed: https://api.github.com/repos/mjtrangoni/flexlm_exporter/releases/142501991","Warn: release artifact v0.0.8 not signed: https://api.github.com/repos/mjtrangoni/flexlm_exporter/releases/74540620","Warn: release artifact v0.0.13 does not have provenance: https://api.github.com/repos/mjtrangoni/flexlm_exporter/releases/217835397","Warn: release artifact v0.0.12 does not have provenance: https://api.github.com/repos/mjtrangoni/flexlm_exporter/releases/142503295","Warn: release artifact v0.0.11 does not have provenance: https://api.github.com/repos/mjtrangoni/flexlm_exporter/releases/142501991","Warn: release artifact v0.0.8 does not have provenance: https://api.github.com/repos/mjtrangoni/flexlm_exporter/releases/74540620"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/mjtrangoni/flexlm_exporter/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/mjtrangoni/flexlm_exporter/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/mjtrangoni/flexlm_exporter/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/mjtrangoni/flexlm_exporter/build.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating docker.io/rockylinux/rockylinux:8 to docker.io/rockylinux/rockylinux:8@sha256:e8a49c5403b687db05d4d67333fa45808fbe74f36e683cec7abb1f7d0f2338c6","Warn: goCommand not pinned by hash: .github/workflows/build.yml:42","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   1 goCommand 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":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"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":"SAST","score":3,"reason":"SAST tool is not run on all commits -- score normalized to 3","details":["Warn: 7 commits out of 19 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"}},{"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"}}]},"last_synced_at":"2025-08-21T13:41:56.516Z","repository_id":40533414,"created_at":"2025-08-21T13:41:56.517Z","updated_at":"2025-08-21T13:41:56.517Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28508789,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T11:50:55.898Z","status":"ssl_error","status_checked_at":"2026-01-17T11:50:55.569Z","response_time":85,"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":["flexlm","license","license-management","metrics","prometheus","prometheus-exporter"],"created_at":"2026-01-17T12:54:42.388Z","updated_at":"2026-01-17T12:54:42.686Z","avatar_url":"https://github.com/mjtrangoni.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FLEXlm Exporter ![Build Status](https://github.com/mjtrangoni/flexlm_exporter/workflows/Build/badge.svg)\n\n[![CircleCI](https://circleci.com/gh/mjtrangoni/flexlm_exporter.svg?style=svg)](https://circleci.com/gh/mjtrangoni/flexlm_exporter)\n[![Docker Repository on Quay](https://quay.io/repository/mjtrangoni/flexlm_exporter/status)][quay]\n[![Docker Pulls](https://badgen.net/docker/pulls/mjtrangoni/flexlm_exporter?icon=docker)][hub]\n[![Go Reference](https://pkg.go.dev/badge/github.com/mjtrangoni/flexlm_exporter.svg)](https://pkg.go.dev/github.com/mjtrangoni/flexlm_exporter)\n[![Coverage Status](https://coveralls.io/repos/github/mjtrangoni/flexlm_exporter/badge.svg?branch=main)](https://coveralls.io/github/mjtrangoni/flexlm_exporter?branch=main)\n[![Go Report Card](https://goreportcard.com/badge/github.com/mjtrangoni/flexlm_exporter)](https://goreportcard.com/report/github.com/mjtrangoni/flexlm_exporter)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://raw.githubusercontent.com/mjtrangoni/flexlm_exporter/main/LICENSE)\n[![StyleCI](https://github.styleci.io/repos/107779392/shield?branch=main)](https://github.styleci.io/repos/107779392)\n\n[Prometheus](https://prometheus.io/) exporter for FLEXlm License Manager\n`lmstat` license information.\n\nIf you are looking for other License Managers metrics (like rlm,lmx, and mathlm),\nplease check the [License Manager Exporter](https://codeberg.org/Zauberbutter/license_manager_exporter/).\n\n## Install\n\n```console\ngo install github.com/mjtrangoni/flexlm_exporter\n```\n\n## Building\n\n```console\ncd $GOPATH/src/github.com/mjtrangoni/flexlm_exporter\nmake\n```\n\n## Configuration\n\nThis is an illustrative example of the configuration file in YAML format.\n\n```yaml\n# FlexLM Licenses to be monitored.\n---\nlicenses:\n  - name: app1\n    license_file: /usr/local/flexlm/licenses/license.dat.app1\n    features_to_exclude: feature1,feature2\n    monitor_users: True\n    monitor_reservations: True\n    monitor_versions: False\n  - name: app2\n    license_server: 28000@host1,28000@host2,28000@host3\n    features_to_include: feature5,feature30\n    monitor_users: True\n    monitor_reservations: True\n    monitor_versions: False\n```\n\nNotes:\n\n 1. It is possible to define a license with a path in `license_file`, that has to\n be readable from the exporter instance, **or** with `license_server` in a\n `port@host` combination format.\n 2. You can exclude some features from exporting with `features_to_exclude`,\n **or** export some defined and exclude the rest with `feature_to_include`.\n\n## Running\n\n```console\n./flexlm_exporter \u003cflags\u003e\n```\n\n### Docker images\n\nDocker images are available on,\n\n 1. [Quay.io](https://quay.io/repository/mjtrangoni/flexlm_exporter).\n    `$ docker pull quay.io/mjtrangoni/flexlm_exporter:latest`\n 1. [Docker](https://hub.docker.com/r/mjtrangoni/flexlm_exporter/).\n    `$ docker pull mjtrangoni/flexlm_exporter:latest`\n 1. [GHCR](https://github.com/mjtrangoni/flexlm_exporter/pkgs/container/flexlm_exporter/).\n    `$ docker pull ghcr.io/mjtrangoni/flexlm_exporter:latest`\n\nPlease make sure that SELinux is not running in your host, or run the container\nas root.\n\nYou can launch a *flexlm_exporter* container with,\n\n```console\n$ export DOCKER_REPOSITORY=\"quay.io/mjtrangoni/flexlm_exporter:latest\"\n$ export LMUTIL_LOCAL=\"PATH where your lmutil binary is located\"\n$ export CONFIG_PATH_LOCAL=\"PATH where your exporter config file is located\"\n$ docker run --name flexlm_exporter -d -p 9319:9319 \\\n    --volume $LMUTIL_LOCAL:/usr/bin/flexlm/ \\\n    --volume $CONFIG_PATH_LOCAL:/home/exporter/config/licenses.yml \\\n    $DOCKER_REPOSITORY --path.lmutil=\"/usr/bin/flexlm/lmutil\" \\\n    --path.config=\"/home/exporter/config/licenses.yml\"\n```\n\nMetrics will now be reachable at \u003chttp://localhost:9319/metrics\u003e.\n\n## What's exported?\n\n 1. `lmutil lmstat -v` information.\n 1. `lmutil lmstat -c license_file -a` or `lmutil lmstat -c license_server -a`\n   license information.\n 1. `lmutil lmstat -c license_file -i` or `lmutil lmstat -c license_server -i`\n   license features expiration date.\n\n## Dashboards\n\n 1. [Grafana Dashboard](https://grafana.com/grafana/dashboards/3854-flexlm)\n\n## Alerting\n\n### Prometheus rules\n\nPrometheus rules for alerting with [Prometheus Alertmanager](https://prometheus.io/docs/alerting/alertmanager/).\n\n```yaml\n\ngroups:\n- name: FlexLM\n  rules:\n  - alert: FlexLmServerDown\n    expr: flexlm_server_status == 0\n    for: 5m\n    labels:\n      severity: error\n    annotations:\n      summary: \"Flexlm Error (instance {{ $labels.instance }})\"\n      description: \"FlexLm {{ $labels.collector }} was not successful\\n  VALUE = {{ $value }}\\n  LABELS: {{ $labels }}\"\n  - alert: LicenceAvailable\n    expr: 100*(flexlm_feature_used / flexlm_feature_issued) \u003e 95\n    for: 5m\n    labels:\n      severity: warning\n    annotations:\n      summary: \"Licence Available Status (instance {{ $labels.instance }})\"\n      description: \"Licence fully used \\n  VALUE = {{ $value }}\\n  LABELS: {{ $labels }}\"\n  - alert: LicenseExpiring\n    expr: ((flexlm_feature_expiration_seconds - time()) / 86400) \u003c 14\n    for: 30m\n    labels:\n      severity: warning\n    annotations:\n      summary: License {{ $labels.app }} expiring soon on {{ $labels.instance }}\n      description: License {{ $labels.app }} on {{ $labels.instance }} has {{ $labels.features }} features ({{ $labels.licenses }} licenses) expiring in {{ $value }} days\n```\n\n## Contributing\n\nRefer to [CONTRIBUTING.md](https://github.com/mjtrangoni/flexlm_exporter/blob/main/CONTRIBUTING.md)\n\n## License\n\nApache License 2.0, see [LICENSE](https://github.com/mjtrangoni/mjtrangoni/blob/main/LICENSE).\n\n[hub]: https://hub.docker.com/r/mjtrangoni/flexlm_exporter/\n[quay]: https://quay.io/repository/mjtrangoni/flexlm_exporter\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjtrangoni%2Fflexlm_exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmjtrangoni%2Fflexlm_exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjtrangoni%2Fflexlm_exporter/lists"}