grafana-import


Namegrafana-import JSON
Version 0.4.0 PyPI version JSON
download
home_pagehttps://github.com/grafana-toolbox/grafana-import
SummaryExport and import Grafana dashboards using the Grafana HTTP API.
upload_time2024-10-16 16:38:45
maintainerNone
docs_urlNone
authorJean-Francois Pik
requires_pythonNone
licenseApache 2.0
keywords grafana http api grafana-client grafana-api http-client grafana-utils grafana-automation grafana-toolbox dashboard grafana-dashboard grafanalib grafonnet
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Grafana import Tool

[![Tests](https://github.com/grafana-toolbox/grafana-import/actions/workflows/tests.yml/badge.svg)](https://github.com/grafana-toolbox/grafana-import/actions/workflows/tests.yml)
[![Coverage](https://codecov.io/gh/grafana-toolbox/grafana-import/branch/main/graph/badge.svg)](https://app.codecov.io/gh/grafana-toolbox/grafana-import)
[![PyPI Version](https://img.shields.io/pypi/v/grafana-import.svg)](https://pypi.org/project/grafana-import/)
[![Python Version](https://img.shields.io/pypi/pyversions/grafana-import.svg)](https://pypi.org/project/grafana-import/)
[![PyPI Downloads](https://pepy.tech/badge/grafana-import/month)](https://pepy.tech/project/grafana-import/)
[![Status](https://img.shields.io/pypi/status/grafana-import.svg)](https://pypi.org/project/grafana-import/)
[![License](https://img.shields.io/pypi/l/grafana-import.svg)](https://pypi.org/project/grafana-import/)

_Export and import Grafana dashboards using the [Grafana HTTP API] and
[grafana-client]._


## Features

- Export dashboards into JSON format.
- Import dashboards into Grafana, both in native JSON format, or
  emitted by dashboard builders, supporting dashboard-as-code workflows.
  - Supported builders are [Grafonnet], [grafana-dashboard], [grafanalib],
    and any other executable program which emits Grafana Dashboard JSON
    on STDOUT.
  - The import action preserves the version history of dashboards.
- Watchdog: For a maximum of authoring and editing efficiency, the
  watchdog monitors the input dashboard for changes on disk, and
  re-uploads it to the Grafana API, when changed.
- Remove dashboards.


## Installation

```shell
pip install --upgrade 'grafana-import[builder]'
```

The command outlined above describes a full installation of `grafana-import`,
including support for dashboard builders, aka. dashboard-as-code.


## Ad Hoc Usage

You can use `grafana-import` in ad hoc mode without a configuration file.

### Getting started

In order to do some orientation flights, start a Grafana instance using Podman
or Docker.
```shell
docker run --rm -it --name=grafana --publish=3000:3000 \
  --env='GF_SECURITY_ADMIN_PASSWORD=admin' grafana/grafana:latest
```

If you don't have any Grafana dashboard representations at hand, you can
acquire some from the `examples` directory within the `grafana-import`
repository, like this.
```shell
wget https://github.com/grafana-toolbox/grafana-snippets/raw/main/dashboard/native-play-influxdb.json
wget https://github.com/grafana-toolbox/grafana-snippets/raw/main/dashboard/gd-prometheus.py
```

Define Grafana endpoint.
```shell
export GRAFANA_URL=http://admin:admin@localhost:3000
```

### Import from JSON
Import a dashboard from a JSON file.
```shell
grafana-import import -i native-play-influxdb.json
```

### Import using a builder
Import a dashboard emitted by a dashboard builder, overwriting it
when a dashboard with the same name already exists in the same folder.
```shell
grafana-import import --overwrite -i gd-prometheus.py
```

### Import using reloading
Watch the input dashboard for changes on disk, and re-upload it, when changed.
```shell
grafana-import import --overwrite --reload -i gd-prometheus.py
```

### Import dashboards from a directory
Import all dashboards from provided directory
```shell
grafana-import import -i "./dashboards_folder"
```

### Export
Export the dashboard titled `my-first-dashboard` to the default export directory.
```bash
grafana-import export --pretty -d "my-first-dashboard"
```

### Delete
Delete the dashboard titled `my-first-dashboard` from folder `Applications`.
```bash
grafana-import remove -f Applications -d "my-first-dashboard"
```


## Usage with Configuration File

You can also use `grafana-import` with a configuration file. In this way, you
can manage and use different Grafana connection profiles, and also use presets
for application-wide configuration settings.

The configuration is stored in a YAML file. In order to use it optimally,
build a directory structure like this:
```
grafana-import/
- conf/grafana-import.yml
  Path to your main configuration file.
- exports/
  Path where exported dashboards will be stored.
- imports/
  Path where dashboards are imported from.
```

Then, enter into your directory, and type in your commands.

The configuration file uses two sections, `general`, and `grafana`.

### `general` section
Configure program directories.

* **debug**: enable verbose (debug) trace (for dev only...)
* **export_suffix**: when exporting a dashboard, append that suffix to the file name. The suffix can contain plain text and pattern that is translated with strftime command.
* **export_path**: where to store the exported dashboards.
* **import_path**: where to load the dashboards before to import then into grafana server.

### `grafana` section

Grafana authentication settings. You can define multiple Grafana access
configuration sections using different settings for `api_key` or Grafana
server URL.

* **label**: A label to refer this Grafana server, e.g. `default`
  * **protocol**, **host**, **port**: use to build the access url
  * **verify_ssl**: to check ssl certificate or not
  * **token**: APIKEY with admin right from Grafana to access the REST API.
  * **search_api_limit**: the maximum element to retrieve on search over API.

<details>

**Example:**

```yaml
---

  general:
    debug: false
    import_folder: test_import

  grafana:
    default:
      protocol: http
      host: localhost
      port: 3000
      token: "____APIKEY____"
      search_api_limit: 5000
      verify_ssl: true
```
</details>


## Authentication

In order to connect to Grafana, you can use either vanilla credentials
(username/password), or an authentication token. Because `grafana-import`
uses `grafana-client`, the same features for defining authentication
settings can be used. See also [grafana-client authentication variants].

Vanilla credentials can be embedded into the Grafana URL, to be supplied
using the `--grafana_url` command line argument, or the `GRAFANA_URL`
environment variable. For specifying a Grafana authentication token without
using a configuration file, use the `GRAFANA_TOKEN` environment variable.

[grafana-client authentication variants]: https://github.com/panodata/grafana-client/#authentication


## Builders

grafana-import provides support for dashboard-as-code builders.

To get inspired what you can do, by reading more examples, please also visit
[grafonnet examples], [grafana-dashboard examples], and [grafanalib examples].

### Grafonnet

[Grafonnet] is a [Jsonnet] library for generating Grafana dashboards.

The library is generated from JSON Schemas generated by Grok. In turn,
these schemas are generated directly from the Grafana repository, in
order to ensure Grafonnet is always synchronized with the development
of Grafana without much friction.

#### Install
Install Jsonnet, and its jsonnet-bundler package manager.
```shell
brew install go-jsonnet jsonnet-bundler
```
Install Grafonnet into a Jsonnet project.
```shell
git clone https://github.com/grafana-toolbox/grafana-snippets
cd grafana-snippets/dashboard/grafonnet-simple
jb install github.com/grafana/grafonnet/gen/grafonnet-latest@main
```

#### Usage
Render dashboard defined in [Grafonnet]/[Jsonnet].
```shell
grafana-import import --overwrite -i ./path/to/faro.jsonnet
```

### grafana-dashboard
Render dashboard defined using [grafana-dashboard].
```shell
grafana-import import --overwrite -i ./path/to/gd-dashboard.py
```

### grafanalib
Render dashboard defined using [grafanalib].
```shell
grafana-import import --overwrite -i ./path/to/gl-dashboard.py
```


## Help

`grafana-import --help`
```shell
usage: grafana-import [-h] [-a] [-b BASE_PATH] [-c CONFIG_FILE]
                      [-d DASHBOARD_NAME] [-g GRAFANA_LABEL]
                      [-f GRAFANA_FOLDER] [-i DASHBOARD_FILE] [-o] [-p] [-v] [-k]
                      [-V]
                      [ACTION]

play with grafana dashboards json files.

positional arguments:
  ACTION                action to perform. Is one of 'export', 'import'
                        (default), or 'remove'.
                        export: lookup for dashboard name in Grafana and dump
                          it to local file.
                        import: import a local dashboard file (previously 
                          exported) to Grafana.
                        remove: lookup for dashboard name in Grafana and remove
                          it from Grafana server.


optional arguments:
  -h, --help            show this help message and exit
  -a, --allow_new       if a dashboard with same name exists in an another
                        folder, allow to create a new dashboard with same name
                        it that folder.
  -b BASE_PATH, --base_path BASE_PATH
                        set base directory to find default files.
  -c CONFIG_FILE, --config_file CONFIG_FILE
                        path to config files.
  -d DASHBOARD_NAME, --dashboard_name DASHBOARD_NAME
                        name of dashboard to export.
  -u GRAFANA_URL, --grafana_url GRAFANA_URL
                        Grafana URL to connect to.
  -g GRAFANA_LABEL, --grafana_label GRAFANA_LABEL
                        label in the config file that represents the grafana to
                        connect to.
  -f GRAFANA_FOLDER, --grafana_folder GRAFANA_FOLDER
                        the folder name where to import into Grafana.
  -i DASHBOARD_FILE, --dashboard_file DASHBOARD_FILE
                        path to the dashboard file to import into Grafana.
  -k  --keep_uid        keep uid defined in dashboard file to import into Grafana. When dashboard is overriden, the uid is also overriden.
  -o, --overwrite       if a dashboard with same name exists in folder,
                        overwrite it with this new one.
  -r, --reload          Watch the input dashboard for changes on disk, and
                        re-upload it, when changed.
  -p, --pretty          use JSON indentation when exporting or extraction of
                        dashboards.
  -v, --verbose         verbose mode; display log message to stdout.
  -V, --version         display program version and exit.

```

## Prior Art

- https://grafana.com/blog/2020/02/26/how-to-configure-grafana-as-code/
- https://grafana.com/blog/2022/12/06/a-complete-guide-to-managing-grafana-as-code-tools-tips-and-tricks/
- https://grafana.github.io/grizzly/
  https://grafana.github.io/grizzly/what-is-grizzly/
- https://docs.ansible.com/ansible/latest/collections/grafana/grafana/dashboard_module.html#ansible-collections-grafana-grafana-dashboard-module
- https://blog.kevingomez.fr/2023/03/07/three-years-of-grafana-dashboards-as-code/
- https://github.com/K-Phoen/grabana
- https://github.com/K-Phoen/dark
- https://github.com/grafana/scenes


## Contributing

Contributions are welcome, and they are greatly appreciated. You can contribute
in many ways, and credit will always be given.

For learning more how to contribute, see the [contribution guidelines] and
learn how to set up a [development sandbox].


[contribution guidelines]: ./CONTRIBUTING.md
[development sandbox]: ./docs/sandbox.md
[Grafana HTTP API]: https://grafana.com/docs/grafana/latest/http_api/
[grafana-client]: https://github.com/panodata/grafana-client
[grafana-dashboard]: https://github.com/fzyzcjy/grafana_dashboard_python
[grafana-dashboard examples]: https://github.com/fzyzcjy/grafana_dashboard_python/tree/master/examples
[grafanalib]: https://github.com/weaveworks/grafanalib
[grafanalib examples]: https://github.com/weaveworks/grafanalib/tree/main/grafanalib/tests/examples
[Grafonnet]: https://github.com/grafana/grafonnet
[grafonnet examples]: https://github.com/grafana/grafonnet/tree/main/examples
[Jsonnet]: https://github.com/google/go-jsonnet

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/grafana-toolbox/grafana-import",
    "name": "grafana-import",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "grafana http api grafana-client grafana-api http-client grafana-utils grafana-automation grafana-toolbox dashboard grafana-dashboard grafanalib grafonnet",
    "author": "Jean-Francois Pik",
    "author_email": "jfpik78@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/36/37/46086a71815a3bdec85065924b216ead322c06557909ffbef73d81354c28/grafana_import-0.4.0.tar.gz",
    "platform": null,
    "description": "# Grafana import Tool\n\n[![Tests](https://github.com/grafana-toolbox/grafana-import/actions/workflows/tests.yml/badge.svg)](https://github.com/grafana-toolbox/grafana-import/actions/workflows/tests.yml)\n[![Coverage](https://codecov.io/gh/grafana-toolbox/grafana-import/branch/main/graph/badge.svg)](https://app.codecov.io/gh/grafana-toolbox/grafana-import)\n[![PyPI Version](https://img.shields.io/pypi/v/grafana-import.svg)](https://pypi.org/project/grafana-import/)\n[![Python Version](https://img.shields.io/pypi/pyversions/grafana-import.svg)](https://pypi.org/project/grafana-import/)\n[![PyPI Downloads](https://pepy.tech/badge/grafana-import/month)](https://pepy.tech/project/grafana-import/)\n[![Status](https://img.shields.io/pypi/status/grafana-import.svg)](https://pypi.org/project/grafana-import/)\n[![License](https://img.shields.io/pypi/l/grafana-import.svg)](https://pypi.org/project/grafana-import/)\n\n_Export and import Grafana dashboards using the [Grafana HTTP API] and\n[grafana-client]._\n\n\n## Features\n\n- Export dashboards into JSON format.\n- Import dashboards into Grafana, both in native JSON format, or\n  emitted by dashboard builders, supporting dashboard-as-code workflows.\n  - Supported builders are [Grafonnet], [grafana-dashboard], [grafanalib],\n    and any other executable program which emits Grafana Dashboard JSON\n    on STDOUT.\n  - The import action preserves the version history of dashboards.\n- Watchdog: For a maximum of authoring and editing efficiency, the\n  watchdog monitors the input dashboard for changes on disk, and\n  re-uploads it to the Grafana API, when changed.\n- Remove dashboards.\n\n\n## Installation\n\n```shell\npip install --upgrade 'grafana-import[builder]'\n```\n\nThe command outlined above describes a full installation of `grafana-import`,\nincluding support for dashboard builders, aka. dashboard-as-code.\n\n\n## Ad Hoc Usage\n\nYou can use `grafana-import` in ad hoc mode without a configuration file.\n\n### Getting started\n\nIn order to do some orientation flights, start a Grafana instance using Podman\nor Docker.\n```shell\ndocker run --rm -it --name=grafana --publish=3000:3000 \\\n  --env='GF_SECURITY_ADMIN_PASSWORD=admin' grafana/grafana:latest\n```\n\nIf you don't have any Grafana dashboard representations at hand, you can\nacquire some from the `examples` directory within the `grafana-import`\nrepository, like this.\n```shell\nwget https://github.com/grafana-toolbox/grafana-snippets/raw/main/dashboard/native-play-influxdb.json\nwget https://github.com/grafana-toolbox/grafana-snippets/raw/main/dashboard/gd-prometheus.py\n```\n\nDefine Grafana endpoint.\n```shell\nexport GRAFANA_URL=http://admin:admin@localhost:3000\n```\n\n### Import from JSON\nImport a dashboard from a JSON file.\n```shell\ngrafana-import import -i native-play-influxdb.json\n```\n\n### Import using a builder\nImport a dashboard emitted by a dashboard builder, overwriting it\nwhen a dashboard with the same name already exists in the same folder.\n```shell\ngrafana-import import --overwrite -i gd-prometheus.py\n```\n\n### Import using reloading\nWatch the input dashboard for changes on disk, and re-upload it, when changed.\n```shell\ngrafana-import import --overwrite --reload -i gd-prometheus.py\n```\n\n### Import dashboards from a directory\nImport all dashboards from provided directory\n```shell\ngrafana-import import -i \"./dashboards_folder\"\n```\n\n### Export\nExport the dashboard titled `my-first-dashboard` to the default export directory.\n```bash\ngrafana-import export --pretty -d \"my-first-dashboard\"\n```\n\n### Delete\nDelete the dashboard titled `my-first-dashboard` from folder `Applications`.\n```bash\ngrafana-import remove -f Applications -d \"my-first-dashboard\"\n```\n\n\n## Usage with Configuration File\n\nYou can also use `grafana-import` with a configuration file. In this way, you\ncan manage and use different Grafana connection profiles, and also use presets\nfor application-wide configuration settings.\n\nThe configuration is stored in a YAML file. In order to use it optimally,\nbuild a directory structure like this:\n```\ngrafana-import/\n- conf/grafana-import.yml\n  Path to your main configuration file.\n- exports/\n  Path where exported dashboards will be stored.\n- imports/\n  Path where dashboards are imported from.\n```\n\nThen, enter into your directory, and type in your commands.\n\nThe configuration file uses two sections, `general`, and `grafana`.\n\n### `general` section\nConfigure program directories.\n\n* **debug**: enable verbose (debug) trace (for dev only...)\n* **export_suffix**: when exporting a dashboard, append that suffix to the file name. The suffix can contain plain text and pattern that is translated with strftime command.\n* **export_path**: where to store the exported dashboards.\n* **import_path**: where to load the dashboards before to import then into grafana server.\n\n### `grafana` section\n\nGrafana authentication settings. You can define multiple Grafana access\nconfiguration sections using different settings for `api_key` or Grafana\nserver URL.\n\n* **label**: A label to refer this Grafana server, e.g. `default`\n  * **protocol**, **host**, **port**: use to build the access url\n  * **verify_ssl**: to check ssl certificate or not\n  * **token**: APIKEY with admin right from Grafana to access the REST API.\n  * **search_api_limit**: the maximum element to retrieve on search over API.\n\n<details>\n\n**Example:**\n\n```yaml\n---\n\n  general:\n    debug: false\n    import_folder: test_import\n\n  grafana:\n    default:\n      protocol: http\n      host: localhost\n      port: 3000\n      token: \"____APIKEY____\"\n      search_api_limit: 5000\n      verify_ssl: true\n```\n</details>\n\n\n## Authentication\n\nIn order to connect to Grafana, you can use either vanilla credentials\n(username/password), or an authentication token. Because `grafana-import`\nuses `grafana-client`, the same features for defining authentication\nsettings can be used. See also [grafana-client authentication variants].\n\nVanilla credentials can be embedded into the Grafana URL, to be supplied\nusing the `--grafana_url` command line argument, or the `GRAFANA_URL`\nenvironment variable. For specifying a Grafana authentication token without\nusing a configuration file, use the `GRAFANA_TOKEN` environment variable.\n\n[grafana-client authentication variants]: https://github.com/panodata/grafana-client/#authentication\n\n\n## Builders\n\ngrafana-import provides support for dashboard-as-code builders.\n\nTo get inspired what you can do, by reading more examples, please also visit\n[grafonnet examples], [grafana-dashboard examples], and [grafanalib examples].\n\n### Grafonnet\n\n[Grafonnet] is a [Jsonnet] library for generating Grafana dashboards.\n\nThe library is generated from JSON Schemas generated by Grok. In turn,\nthese schemas are generated directly from the Grafana repository, in\norder to ensure Grafonnet is always synchronized with the development\nof Grafana without much friction.\n\n#### Install\nInstall Jsonnet, and its jsonnet-bundler package manager.\n```shell\nbrew install go-jsonnet jsonnet-bundler\n```\nInstall Grafonnet into a Jsonnet project.\n```shell\ngit clone https://github.com/grafana-toolbox/grafana-snippets\ncd grafana-snippets/dashboard/grafonnet-simple\njb install github.com/grafana/grafonnet/gen/grafonnet-latest@main\n```\n\n#### Usage\nRender dashboard defined in [Grafonnet]/[Jsonnet].\n```shell\ngrafana-import import --overwrite -i ./path/to/faro.jsonnet\n```\n\n### grafana-dashboard\nRender dashboard defined using [grafana-dashboard].\n```shell\ngrafana-import import --overwrite -i ./path/to/gd-dashboard.py\n```\n\n### grafanalib\nRender dashboard defined using [grafanalib].\n```shell\ngrafana-import import --overwrite -i ./path/to/gl-dashboard.py\n```\n\n\n## Help\n\n`grafana-import --help`\n```shell\nusage: grafana-import [-h] [-a] [-b BASE_PATH] [-c CONFIG_FILE]\n                      [-d DASHBOARD_NAME] [-g GRAFANA_LABEL]\n                      [-f GRAFANA_FOLDER] [-i DASHBOARD_FILE] [-o] [-p] [-v] [-k]\n                      [-V]\n                      [ACTION]\n\nplay with grafana dashboards json files.\n\npositional arguments:\n  ACTION                action to perform. Is one of 'export', 'import'\n                        (default), or 'remove'.\n                        export: lookup for dashboard name in Grafana and dump\n                          it to local file.\n                        import: import a local dashboard file (previously \n                          exported) to Grafana.\n                        remove: lookup for dashboard name in Grafana and remove\n                          it from Grafana server.\n\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -a, --allow_new       if a dashboard with same name exists in an another\n                        folder, allow to create a new dashboard with same name\n                        it that folder.\n  -b BASE_PATH, --base_path BASE_PATH\n                        set base directory to find default files.\n  -c CONFIG_FILE, --config_file CONFIG_FILE\n                        path to config files.\n  -d DASHBOARD_NAME, --dashboard_name DASHBOARD_NAME\n                        name of dashboard to export.\n  -u GRAFANA_URL, --grafana_url GRAFANA_URL\n                        Grafana URL to connect to.\n  -g GRAFANA_LABEL, --grafana_label GRAFANA_LABEL\n                        label in the config file that represents the grafana to\n                        connect to.\n  -f GRAFANA_FOLDER, --grafana_folder GRAFANA_FOLDER\n                        the folder name where to import into Grafana.\n  -i DASHBOARD_FILE, --dashboard_file DASHBOARD_FILE\n                        path to the dashboard file to import into Grafana.\n  -k  --keep_uid        keep uid defined in dashboard file to import into Grafana. When dashboard is overriden, the uid is also overriden.\n  -o, --overwrite       if a dashboard with same name exists in folder,\n                        overwrite it with this new one.\n  -r, --reload          Watch the input dashboard for changes on disk, and\n                        re-upload it, when changed.\n  -p, --pretty          use JSON indentation when exporting or extraction of\n                        dashboards.\n  -v, --verbose         verbose mode; display log message to stdout.\n  -V, --version         display program version and exit.\n\n```\n\n## Prior Art\n\n- https://grafana.com/blog/2020/02/26/how-to-configure-grafana-as-code/\n- https://grafana.com/blog/2022/12/06/a-complete-guide-to-managing-grafana-as-code-tools-tips-and-tricks/\n- https://grafana.github.io/grizzly/\n  https://grafana.github.io/grizzly/what-is-grizzly/\n- https://docs.ansible.com/ansible/latest/collections/grafana/grafana/dashboard_module.html#ansible-collections-grafana-grafana-dashboard-module\n- https://blog.kevingomez.fr/2023/03/07/three-years-of-grafana-dashboards-as-code/\n- https://github.com/K-Phoen/grabana\n- https://github.com/K-Phoen/dark\n- https://github.com/grafana/scenes\n\n\n## Contributing\n\nContributions are welcome, and they are greatly appreciated. You can contribute\nin many ways, and credit will always be given.\n\nFor learning more how to contribute, see the [contribution guidelines] and\nlearn how to set up a [development sandbox].\n\n\n[contribution guidelines]: ./CONTRIBUTING.md\n[development sandbox]: ./docs/sandbox.md\n[Grafana HTTP API]: https://grafana.com/docs/grafana/latest/http_api/\n[grafana-client]: https://github.com/panodata/grafana-client\n[grafana-dashboard]: https://github.com/fzyzcjy/grafana_dashboard_python\n[grafana-dashboard examples]: https://github.com/fzyzcjy/grafana_dashboard_python/tree/master/examples\n[grafanalib]: https://github.com/weaveworks/grafanalib\n[grafanalib examples]: https://github.com/weaveworks/grafanalib/tree/main/grafanalib/tests/examples\n[Grafonnet]: https://github.com/grafana/grafonnet\n[grafonnet examples]: https://github.com/grafana/grafonnet/tree/main/examples\n[Jsonnet]: https://github.com/google/go-jsonnet\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "Export and import Grafana dashboards using the Grafana HTTP API.",
    "version": "0.4.0",
    "project_urls": {
        "Homepage": "https://github.com/grafana-toolbox/grafana-import"
    },
    "split_keywords": [
        "grafana",
        "http",
        "api",
        "grafana-client",
        "grafana-api",
        "http-client",
        "grafana-utils",
        "grafana-automation",
        "grafana-toolbox",
        "dashboard",
        "grafana-dashboard",
        "grafanalib",
        "grafonnet"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aa119ead7a8ac8bce566b84eb2c68c882f311e4b40e9079a052bc82cb585907f",
                "md5": "5748ec0f0020f310b14ee87ba8f3140c",
                "sha256": "1e537ec0ad8cb472dbdfc0e5a3ea9b12522d8e44c4dc8d16a47c5716d71f1733"
            },
            "downloads": -1,
            "filename": "grafana_import-0.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5748ec0f0020f310b14ee87ba8f3140c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 25669,
            "upload_time": "2024-10-16T16:38:43",
            "upload_time_iso_8601": "2024-10-16T16:38:43.112025Z",
            "url": "https://files.pythonhosted.org/packages/aa/11/9ead7a8ac8bce566b84eb2c68c882f311e4b40e9079a052bc82cb585907f/grafana_import-0.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "363746086a71815a3bdec85065924b216ead322c06557909ffbef73d81354c28",
                "md5": "acbd4e90f9de5f24f04d07d09e3deaac",
                "sha256": "f2fc51343dff7e433ae552fbe919e49c003387fac99bc61b4424dfddcc745c8e"
            },
            "downloads": -1,
            "filename": "grafana_import-0.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "acbd4e90f9de5f24f04d07d09e3deaac",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 29374,
            "upload_time": "2024-10-16T16:38:45",
            "upload_time_iso_8601": "2024-10-16T16:38:45.193447Z",
            "url": "https://files.pythonhosted.org/packages/36/37/46086a71815a3bdec85065924b216ead322c06557909ffbef73d81354c28/grafana_import-0.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-16 16:38:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "grafana-toolbox",
    "github_project": "grafana-import",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "grafana-import"
}
        
Elapsed time: 0.47353s