{"id":28533799,"url":"https://github.com/epam/timebasegrafanaplugin","last_synced_at":"2025-07-07T20:31:13.425Z","repository":{"id":37907009,"uuid":"381690734","full_name":"epam/TimeBaseGrafanaPlugin","owner":"epam","description":"TimeBase datasource for Grafana","archived":false,"fork":false,"pushed_at":"2025-01-02T20:48:52.000Z","size":2061,"stargazers_count":4,"open_issues_count":5,"forks_count":3,"subscribers_count":6,"default_branch":"main-1.1","last_synced_at":"2025-06-09T17:09:35.306Z","etag":null,"topics":["deltix","timebase"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/epam.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2021-06-30T12:14:15.000Z","updated_at":"2024-12-24T15:36:06.000Z","dependencies_parsed_at":"2024-12-18T13:53:15.542Z","dependency_job_id":null,"html_url":"https://github.com/epam/TimeBaseGrafanaPlugin","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/epam/TimeBaseGrafanaPlugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2FTimeBaseGrafanaPlugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2FTimeBaseGrafanaPlugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2FTimeBaseGrafanaPlugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2FTimeBaseGrafanaPlugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epam","download_url":"https://codeload.github.com/epam/TimeBaseGrafanaPlugin/tar.gz/refs/heads/main-1.1","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2FTimeBaseGrafanaPlugin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264142568,"owners_count":23563518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["deltix","timebase"],"created_at":"2025-06-09T17:08:44.657Z","updated_at":"2025-07-07T20:31:13.412Z","avatar_url":"https://github.com/epam.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TimeBase Datasource Plugin for Grafana\n\nTimeBase Grafana plugin allows visualizing [TimeBase](https://kb.timebase.info/) streams data in [Grafana](https://grafana.com/).\n\n[Link to plugin distribution](https://github.com/epam/TimeBaseGrafanaPlugin/releases/download/1.1.4/epam-timebase-datasource.zip)\n\n[Link to QQL (TimeBase Query language) tutorial](https://kb.timebase.info/community/development/qql/QQL%205.5/qql-tut-intro)\n\n## Functionality\n\nThis plugin provides a wide range of instruments for time-series data analysis and processing, including functions from financial analysis domain, statistics, etc.\n\n## Prerequisites\n\nTimeBase plugin uses [TimeBase Web Admin](https://webadmin.timebase.info/api/v0/docs/index.html) REST API - the required component.\n\n\n---\n**IMPORTANT NOTICE**\n\n\nSupported TimeBase versions: `[5.5.6, 5.7.*]`    \nSupported TimeBase Web Admin versions: `[0.5.5, 1.2.*]`     \nSupported Grafana versions: `[10.2+, 11+]`\n\nOther versions are rather incompatible or partially incompatible.\n\n---\n\n## How To Build\n\nTo build the plugin `NodeJS` \u003e= 20 and `Yarn` \u003e= 1.22 are required.\n\n## Installation\n\n### Using environment variable\n\n\u003e Preferred with Docker/Kubernetes.\n\n1. Set environment variable `GF_INSTALL_PLUGINS=https://github.com/epam/TimeBaseGrafanaPlugin/releases/download/1.1.4/epam-timebase-datasource.zip;epam-timebase-datasource` and `GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=epam-timebase-datasource`.\n2. Restart grafana server.\n\n### Using `grafana-cli`\n\n1. Run command `grafana-cli --pluginUrl https://github.com/epam/TimeBaseGrafanaPlugin/releases/download/1.1.4/epam-timebase-datasource.zip plugins install epam-timebase-datasource`\n2. Restart Grafana server.\n\n## Working with SSO on TimeBase WebAdmin\n\nTo work with TimeBase WebAdmin, where SSO is enabled, Grafana should be connected to the same SSO\nprovider. After that switch \"Forward OAuth Identity\" should be used to log in to TimeBase WebAdmin.\n\n## How To Use Plugin\n\nFollowing sections describe TimeBase plugin functionality. See [Grafana Docs](https://grafana.com/docs/grafana/latest/) for more in depth information about all the features and tools offered by Grafana.\n\n### Adding Data Source\n\n\u003e Refer to [Grafana Docs](https://grafana.com/docs/grafana/latest/) for more in depth information about all the supported features and tools.\n\nGrafana plugin uses TimeBase as a data source. You can use more than one TimeBase instance as Grafana plugin data source. \n\n1. In the **Configuration** menu select **Data Source**.\u003cbr\u003e\n![](/src/img/data_source.png)\u003cbr\u003e\n2. Click **Add Data Source** and find your TimeBase Plugin.\n3. Configure plugin settings\n   + Name - Plugin name\n   + URL - TimeBase Web Admin URL\n   + User - TimeBase Web Admin user Username\n   + Password - TimeBase Web Admin user Password\n4. Click **Test** to check the connection with TimeBase. You will see a confirmation message in case the connection is successful.\u003cbr\u003e\n![](/src/img/grafana_plugin_settings.png)\u003cbr\u003e\n5. Set toggle to **Default** to make the current selection a default data source.\n\n### Dashboards\n\n#### Standard Dashboards\n\n\u003e You can [import](https://grafana.com/docs/grafana/latest/dashboards/export-import/#import-dashboard) standard [Dashboards](https://github.com/epam/TimeBaseGrafanaPlugin/tree/main/dashboards) from the public repository. \n\n![](/src/img/dashboard1.png)\n\n**TimeBase Overview** - displays all the available streams (count, names, stream schemas, description), [QQL](https://kb.timebase.info/docs/development/qql/QQL%205.5/qql-tut-functions#internal-functions) stateful and stateless functions, stream classes [messages](https://kb.timebase.info/community/overview/messages) and fields. \n\n![](/src/img/dashboard2.png)\n\n**Market Data** - visualization of streams with the available market data. \n\n#### Create Dashboard\n\n\u003e Refer to [Grafana Docs](https://grafana.com/docs/grafana/latest/) for more in depth information about all the supported features and tools.\n\n1. Go to **Create** menu and click **Dashboard**.\n2. Click **Add new panel** to create a dashboard.\u003cbr\u003e\n![](/src/img/create_panel.png)\n\n### Queries\n\nThe Plugin allows running TimeBase QQL queries in **visual editor** and **raw query** modes. Click **Edit** icon to switch between two modes.\n\n\u003e Refer to [Grafana Docs](https://grafana.com/docs/grafana/latest/) for more in depth information about all the supported features and tools.\n\n\n#### Visual Editor\n\nIn this mode you can use built-in UI elements to create and run QQL queries to the selected data source and visualize them on the dashboard.\n\n1. In **Query** tab select TimeBase plugin in the drop down list. Each custom plugin has own set of parameters. \u003cbr\u003e\n![](/src/img/grafana_plugin_1.png)\u003cbr\u003e\n2. You may create just one or a combination of several queries. Click **+ Query** to add another query.\u003cbr\u003e\n![](/src/img/grafana_plugin_2.png)\n\n#### Raw Query\n\n![](/src/img/raw.png)\n\nIn this mode you switch from the UI to the raw QQL query format. Refer to [QQL Tutorial](https://kb.timebase.info/community/development/qql/QQL%205.5/qql-tut-intro) to learn more about the TimeBase query language called QQL. \n\n#### Parameters\n\n![](/src/img/grafana_plugin_3.png)\n\nTimeBase plugin offers the following categories of parameters you can use to make data queries: \n\n* [Stream](#stream)\n* [Symbol](#symbol)\n* [Select](#select)\n* [Group By](#group-by)\n* [View](#view)\n\n#### Stream\n\nTime-series data is stored in [streams](https://kb.timebase.info/community/overview/streams). Each TimeBase instance can be seen as a collection of streams. Here you can select a specific stream to visualize data that it stores. \n\n* Select a stream you wish to place a query to. \n* Use **WHERE**/**AND** clauses to extract data that meets specific conditions. \n\n\u003e Available streams are determined by the TimeBase Web Admin back end.\n\n\n#### Symbol\n\nTime-series data is recorded in streams in a form of [Messages](https://kb.timebase.info/community/overview/messages). Each message has a `timestamp` (time and date of a message) and `symbol` (specific identifier of a data source like sensor id, trading instrument name etc) that serve for data indexing. You can select a specific symbol to sort stream data by, for example display all readings for a specific IoT sensor (sensor id is a symbol value in this case).\n\n* Use drop down list of symbols to select a specific symbol/set of symbols for your query or select **All()** to display data for all the available symbols.\n\n\u003e Available symbols are determined by the TimeBase Web Admin back end.\n\u003e In symbol-dependent functions, such as bars, it is necessary to group by symbol in order for the function to work correctly with multiple symbols.\n \n\n#### Select\n\nIn this section you can **select** specific message fields to filter your query, perform different data aggregations and  computations using available fields and functions.\n\n**Field**\n\nTimeBase messages may be of different types (classes). Each message class has a specific set of attributes (fields). In Grafana UI it is visualized as `class:field` in the **Fields** section. Imagine a water meter, meter id is a symbol, meter reading is a field. Another example of a field may be a trading instrument price and quantity (trading instrument name is a symbol, price and quantity are fields).  \n\n* Select at least one **Field** from the drop down list of available fields. Available fields are determined by message types (classes) in your stream. The selected data is displayed on the dashboard and is changed as you add more fields and perform any additional manipulations with data.\u003cbr\u003e \n![](/src/img/grafana_plugin_4.png)\u003cbr\u003e\n* On the dashboard, you can select between fields you wish to display.\n\n\n**Functions**\n\nYou can perform various manipulations with your data set using mathematical, financial and/or statistical functions. Hover over each function to see details. You can use combinations of functions.\n\n![](/src/img/functions.png)\n\n![](/src/img/functions2.png)\n\n\u003e Available functions are determined by the TimeBase Web Admin back end.\n \n**Aggregations**\n\nUse a set of available aggregations and aliases to manipulate with the selected data. You can use a combination of aggregations. \n\n\u003e Aggregations cannot be applied to aggregation functions (e.g. bars functions).\n \n![](/src/img/aggregations.png)\n\n\u003e Available aggregations are determined by the TimeBase Web Admin back end.\n \n\n#### Group By\n\nUse this section to set time intervals and to make additional groupings of the selected data. For example, in case you have selected **All()** symbols from your stream, you can use group by **symbol** to view data for each symbol in the stream. Use a predefined time range options or manually input time range (e.g. 45s) to sort data in time. \n\n![](/src/img/groupings.png)\n\n**Option**\n\nThis option is enabled in case you select at least one specific field to Group By your data set. In this case, the selected field(s) serves as a key. You can arrange data with this key either placed in table column or row. \n\n![](/src/img/group_option.png)\n\n#### View\n\nGrafana supports **DATAFRAME** and **TIMESERIES** visualization formats. Select the format that your plugin supports.   \n\n**Additional Information**\n\n* [Grafana Getting Started Documentation](https://grafana.com/docs/grafana/latest/)\n* [Grafana Plugin Installation Guide](https://grafana.com/docs/grafana/latest/plugins/installation/#installing-plugins-manually)\n* [Grafana Plugin CLI Commands](https://grafana.com/docs/grafana/latest/administration/cli/#plugins-commands)\n* [TimeBase Web Admin Installation](https://kb.timebase.info/community/development/tools/Web%20Admin/admin_config_ce)\n* [TimeBase Deployment Options](https://kb.timebase.info/community/deployment/docker)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepam%2Ftimebasegrafanaplugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepam%2Ftimebasegrafanaplugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepam%2Ftimebasegrafanaplugin/lists"}