# Flake8 prometheus metric name plugin
[![pypi](https://badge.fury.io/py/flake8-prometheus-metrics-name.svg)](https://pypi.org/project/flake8-prometheus-metrics-name/)
[![Python: 3.6+](https://img.shields.io/badge/Python-3.6+-blue.svg)](https://pypi.org/project/flake8-breakpoint)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://en.wikipedia.org/wiki/MIT_License)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
Flake8 plugin to check metrics name prefix for official client https://github.com/prometheus/client_python.
## Installation
```bash
pip install flake8-prometheus-metrics-name
```
## Usage
Imagine we have python module `some_module.py`:
```python
from prometheus_client import Counter
Counter(name='kek_values', documentation='some doc')
Counter(name='some_name1', documentation='some doc')
Counter(name='some_name2', documentation='some doc') # noqa: PRM902
Counter(name='some_name3', documentation='some doc')
Counter(name='lol_values', documentation='some doc')
```
Add valid metrics name prefixes to `setup.cfg`:
```buildoutcfg
[flake8]
prometheus-metrics-name-prefixes =
kek_
lol_
```
Run flake8 `flake8 some_modue.py` cause following warnings:
```bash
some_module.py:4:1: PRM902: Metric name should start with one of following prefixes: "kek_", "lol_", got "some_name1" instead
some_module.py:6:1: PRM902: Metric name should start with one of following prefixes: "kek_", "lol_", got "some_name3" instead
```
Plugin also may be disabled by adding following option to `setup.cfg`:
```buildoutcfg
[flake8]
prometheus-metrics-disabled = 1
```
then AST nodes will not be analized for metrics name on flake8 run.
## License
MIT
Raw data
{
"_id": null,
"home_page": "https://github.com/perminovs/flake8_prometheus_metrics_name",
"name": "flake8-prometheus-metrics-name",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8.1,<4.0",
"maintainer_email": "",
"keywords": "flake8,linter,python,prometheus",
"author": "perminovs",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/ec/79/4fa09345441bf0aa8695abaeb176d9809c4b4401dedddd1abc513433ad3e/flake8_prometheus_metrics_name-0.1.13.tar.gz",
"platform": null,
"description": "# Flake8 prometheus metric name plugin\n\n\n[![pypi](https://badge.fury.io/py/flake8-prometheus-metrics-name.svg)](https://pypi.org/project/flake8-prometheus-metrics-name/)\n[![Python: 3.6+](https://img.shields.io/badge/Python-3.6+-blue.svg)](https://pypi.org/project/flake8-breakpoint)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://en.wikipedia.org/wiki/MIT_License)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\nFlake8 plugin to check metrics name prefix for official client https://github.com/prometheus/client_python.\n\n## Installation\n```bash\npip install flake8-prometheus-metrics-name\n```\n\n## Usage\nImagine we have python module `some_module.py`:\n```python\nfrom prometheus_client import Counter\n\nCounter(name='kek_values', documentation='some doc')\nCounter(name='some_name1', documentation='some doc')\nCounter(name='some_name2', documentation='some doc') # noqa: PRM902\nCounter(name='some_name3', documentation='some doc')\nCounter(name='lol_values', documentation='some doc')\n```\n\nAdd valid metrics name prefixes to `setup.cfg`:\n```buildoutcfg\n[flake8]\nprometheus-metrics-name-prefixes =\n kek_\n lol_\n```\n\nRun flake8 `flake8 some_modue.py` cause following warnings:\n```bash\nsome_module.py:4:1: PRM902: Metric name should start with one of following prefixes: \"kek_\", \"lol_\", got \"some_name1\" instead\nsome_module.py:6:1: PRM902: Metric name should start with one of following prefixes: \"kek_\", \"lol_\", got \"some_name3\" instead\n```\n\nPlugin also may be disabled by adding following option to `setup.cfg`:\n```buildoutcfg\n[flake8]\nprometheus-metrics-disabled = 1\n```\nthen AST nodes will not be analized for metrics name on flake8 run.\n\n## License\nMIT\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Flake8 plugin for prometheus metric name validation",
"version": "0.1.13",
"project_urls": {
"Homepage": "https://github.com/perminovs/flake8_prometheus_metrics_name",
"Repository": "https://github.com/perminovs/flake8_prometheus_metrics_name"
},
"split_keywords": [
"flake8",
"linter",
"python",
"prometheus"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7af7b192e5835ceeb886f7e4ccfe942db3f645b45b62f770c6f6ae2fad7ee542",
"md5": "f6e14a0c5085e03680dfdeb7a99ecfb5",
"sha256": "bdc8ab18b9ea36e4cfcd122961b5a75168f75a6615e1f22932a294345d246dbb"
},
"downloads": -1,
"filename": "flake8_prometheus_metrics_name-0.1.13-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f6e14a0c5085e03680dfdeb7a99ecfb5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8.1,<4.0",
"size": 5390,
"upload_time": "2024-01-11T01:30:20",
"upload_time_iso_8601": "2024-01-11T01:30:20.312655Z",
"url": "https://files.pythonhosted.org/packages/7a/f7/b192e5835ceeb886f7e4ccfe942db3f645b45b62f770c6f6ae2fad7ee542/flake8_prometheus_metrics_name-0.1.13-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ec794fa09345441bf0aa8695abaeb176d9809c4b4401dedddd1abc513433ad3e",
"md5": "7aaaaead0865032f5e60dc4b0fb417e5",
"sha256": "f032b9f966aa745fa805261b1fa411b46257ce083216848f1a84eebbd9d7b8bd"
},
"downloads": -1,
"filename": "flake8_prometheus_metrics_name-0.1.13.tar.gz",
"has_sig": false,
"md5_digest": "7aaaaead0865032f5e60dc4b0fb417e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.1,<4.0",
"size": 4025,
"upload_time": "2024-01-11T01:30:21",
"upload_time_iso_8601": "2024-01-11T01:30:21.877229Z",
"url": "https://files.pythonhosted.org/packages/ec/79/4fa09345441bf0aa8695abaeb176d9809c4b4401dedddd1abc513433ad3e/flake8_prometheus_metrics_name-0.1.13.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-11 01:30:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "perminovs",
"github_project": "flake8_prometheus_metrics_name",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "flake8-prometheus-metrics-name"
}