Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

Grafanaプラグインに新しいRedisデータソースを使用する方法

今月初め、RedisはGrafanaプラグイン用の新しいRedisデータソースをリリースしました。これは、広く使用されているオープンソースアプリケーション監視ツールをRedisに接続します。すべてがどのように機能するかを理解するために、自己参照の例を見てみましょう。プラグインを使用して、時間の経過とともにダウンロードされた回数を確認します。 (Grafanaプラグインリポジトリ自体は、そのままではそのような統計を提供しません。)

詳細を知りたいですか?読む Grafana用のRedisデータソースプラグインの紹介

GrafanaのRedisデータソースとは何ですか?

Grafanaに慣れていない場合は、アプリケーション、インフラストラクチャ、ソフトウェアコンポーネントを監視するダッシュボードを作成するために使用される非常に人気のあるツールです。 GrafanaのRedisデータソースは、ユーザーがRedisデータベースに接続し、Grafanaでダッシュボードを構築してRedisデータを簡単に監視できるようにするプラグインです。すぐに使用できる事前定義されたダッシュボードを提供しますが、特定のニーズに合わせてカスタマイズされたダッシュボードを構築することもできます。

Grafanaプラグインに新しいRedisデータソースを使用する方法

GrafanaプラグインのRedisデータソースは、grafana-cli、Dockerを使用してインストールするか、Grafanaクラウドで使用できます。または、GitHubの手順に従って、プラグインを最初から作成することもできます。

grafana-cli plugins install redis-datasource

前提条件

このデモでは以下を使用します:

  • Node.js 10.xとノードパッケージマネージャー(npm)
  • Docker
  • Dockerの作成
  • RedisTimeSeriesを使用したRedis5.0.x以降(このデモではRedis Dockerコンテナーを使用します)
  • Redisデータソースを使用したGrafana7.0以降(このデモではGrafana Dockerコンテナを使用します)

Grafanaプラグイン情報を取得する方法

Grafanaリポジトリに登録されているプラ​​グインに関する情報は、JSON形式のAPIを使用して取得できます。

 GET https://grafana.com/api/plugins/redis-datasource/versions/latest {"id":2613、 "pluginId":639、 "pluginSlug": "redis-datasource"、 "version": "1.1.2"、 "url": "https://github.com/RedisTimeSeries/grafana-redis-datasource/"、... "downloads":1153、 "verified":false、 "status": "active "、" packages ":{" any ":{" md5 ":" ea0a2c9cb11c9fad66703ba4291e61cb "、" packageName ":" any "、" downloadUrl ":" / api / plugins / undefined / versions / 1.1.2 、

この例では、GrafanaプラグインのRedisデータソースが1日に何回ダウンロードされたかを調べ、Redisブログにツイートまたは投稿した後の急増を調べたいと思いました。 RedisTimeSeries(Redisに時系列データ構造を追加するRedisモジュール)を使用して、1時間ごとのダウンロード数を追跡することにしました。

データを入力するために、 TS.ADDを使用しました 自動タイムスタンプとラベル`pluginを使用したコマンド `と`バージョン `。 Xはダウンロード数であり、APIから取得した最新バージョンの`1.1.2`です。ラベルは、後で時系列を照会するために使用されます。

 127.0.0.1:6379> ts.add redis-datasource *XLABELSプラグインredis-datasourceバージョン1.1.2

ioredisライブラリとAxiosライブラリを使用してAPIを呼び出し、プラグイン情報を使用して時系列サンプルを追加する簡単なスクリプトを作成しました。

 / ** *Node.js用の堅牢でパフォーマンス重視のフル機能のRedisクライアント。 * * @see https://github.com/luin/ioredis * / const Redis =require( "ioredis"); /***ブラウザとnode.js用のPromiseベースのHTTPクライアント**@see https:// github.com/axios/axios * / const axios =require( "axios"); / ** * TLS暗号化を使用する場合は、接続オプションをredis:// URLまたはredis://URLとして指定することもできます*/ const redis =new Redis( "redis:// localhost:6379"); /***メイン**@async *@param{string}プラグインプラグイン名*/async function main(plugin){/***プラグインのデータを取得* * @see https://grafana.com/api/plugins/redis-datasource/versions/latest * / const response =await axios.get( `https://grafana.com/api/plugins/${plugin} /バージョン/最新`); /***応答*/const data =response.data; if(!data){console.log( "データはどこにありますか?");戻る; } /***プラグインとバージョンラベルを使用して時系列サンプルを追加します*/await redis.send_command( "TS.ADD"、data.pluginSlug、 "*"、data.downloads、 "LABELS"、 "plugin"、 pluginSlug、 "version"、data.version); / ***Redis接続を閉じます*/redis.quit();} /***を待ちます*/main( "redis-datasource");
を開始します

私のスクリプト環境

package.jsonファイルを使用して依存関係をインストールし、 ` npmを使用してコマンドを実行しました `ここに示すように:

 {"author": "Mikhail Volkov"、 "dependencies":{"axios": "^ 0.19.2"、 "ioredis": "^ 4.17.3"}、 "description":"Grafanaの統計情報を取得プラグイン"、" devDependencies ":{" @ types / node ":" ^ 14.0.27 "}、"ライセンス ":" ISC "、" name ":" grafana-plugin-stats "、" scripts ":{" redis -cli ":" docker exec -it redistimeseries redis-cli "、" start ":" docker-compose up "、" start:app ":" node grafana-plugin-stats.ts "}、" version ":" 1.0 .0 "} 

Dockerコンテナーを調整するために、docker-composeを使用しました:

  • Redisサービスは、RedisTimeSeriesモジュールが有効になっているredis/redistimeseriesイメージに基づいています。
  • Grafanaサービスは、リポジトリからインストールされたRedisデータソースプラグインを備えた最新のGrafanaリリースを使用します。
 version: "3.4" services:redis:container_name:redistimeseries image:redis / redistimeseries:latest ports:-6379:6379 grafana:3000tainer_name:grafana image:grafana / grafana:late --GF_AUTH_ANONYMOUS_ORG_ROLE =Admin-GF_AUTH_ANONYMOUS_ENABLED =true-GF_AUTH_BASIC_ENABLED =false-GF_ENABLE_GZIP =true-gif_INSTALL_PLUGINS =re 

1時間ごとにスクリプトを実行し、ダウンロードデータを収集するために、クラウドのLinuxサーバーでcrontabを使用しました。

 root @ grafana:〜#crontab -l5 * ***ノード/root/grafana-plugin-stats/stats.ts

GrafanaプラグインのRedisデータソースのテスト

スクリプトを実行してデータを収集するには、オペレーティングシステムの手順に従って、Node.js、Docker、DockerComposeをインストールする必要があります。

> docker-compose up -dStarting grafana ... doneStarting redistimeseries ... done ... redistimeseries | 1:M 2020年8月8日21:13:20.405 *  RedisTimeSeriesによって検出されたRedisバージョン:6.0.1- oss ... grafana | redis-datasource@1.1.2grafanaのインストール|差出人:https://grafana.com/api/plugins/redis-datasource/versions/1.1.2/download...grafana | t =2020-08-08T21:13:23 + 0000 lvl =info msg="プラグインの登録"logger=plugins name =Redisgrafana | t =2020-08-08T21:13:23 + 0000 lvl =info msg ="HTTP Server Listen" logger =http.server address =[::]:3000 protocol =http subUrl =socket =

スクリプトを実行した後、 TS.MRANGEを使用してRedisTimeSeriesデータを確認できます。 指図。順方向または逆方向のフィルターを使用して、複数の時系列にわたる範囲を照会できます。

 127.0.0.1:6379> ts.mrange-+ withlabels filter plugin =redis-datasource1)1) "diff:redis-datasource" 2)1)1) "value" 2) "diff" 2)1) "タイプ"2)" datasource "3)1)" plugin "2)" redis-datasource "4)1)" version "2)" 1.1.2 "3)1)1)(integer)1597125 1)(整数)1597129202847 2)1 3)1)(整数)1597132802738 2)10 

コマンドTS.MRANGE フィルタ付き`プラグイン `は`redis-datasourceのサンプルのみを取得します `プラグイン。オプションWITHLABELSを使用します ラベルを返します。

GrafanaでRedisTimeSeriesデータを表示する方法

` http:// localhost:3000を使用してWebブラウザでGrafanaを開きます `そして、[構成]-> [データソース]を選択して、データソースを作成します。 GrafanaのRedisデータソースはトランスポート層セキュリティ(TLS)をサポートしており、直接接続を使用してどこからでもオープンソースのRedis OSS、Redis Enterprise、RedisEnterpriseCloudデータベースに接続できます。

Grafanaプラグインに新しいRedisデータソースを使用する方法

次のステップは、データを視覚化するためのグラフパネルを備えたダッシュボードを作成することです。クエリエディタで「RedisDatasource」と「RedisTimeSeriesコマンド」を選択します。コマンドTS.MRANGEを使用します プラグイン名フィルター付き。

Grafanaプラグインに新しいRedisデータソースを使用する方法

最後に、プラグインにLegend Labelsという名前を付け、バージョンをValue Labelに設定しました。これにより、Grafana用のRedisデータソースの新しいバージョンのシリーズを簡単に表示できるようになります。

結果の確認

コマンドTS.INFOを使用します 時系列の情報と統計を表示します。これまでに250時間のダウンロードデータを収集し、時系列やその他の情報を保存するために割り当てられたメモリの量(バイト単位)を確認できます。

 127.0.0.1:6379> ts.info diff:redis-datasource 1)totalSamples 2)(integer)250 3)memoryUsage 4)(integer)4313 5)firstTimestamp 6)(integer)1597125602559 7)lastTimestamp 8)( integer)1598022003033 9)retentionTime10)(integer)011)chunkCount12)(integer)113)maxSamplesPerChunk14)(integer)25615)labels16)1)1) "value" 2) "diff" 2)1) "type" 2) " datasource」3)1)「plugin」2)「redis-datasource」4)1)「version」2)「1.1.2」17)sourceKey18)(nil)19)rules20)(空のリストまたはセット)
>

公開時点で、GrafanaプラグインのRedisデータソースは3500回以上ダウンロードされています。コミュニティから貴重なフィードバックを受け取り、データソースの新機能の開発を続けています。

詳細については、プロジェクトのGitHubリポジトリを確認し、問題について質問がある場合はお知らせください。

結論

この投稿と、GrafanaのRedisデータソースを使用してプラグインのダウンロードを経時的に追跡する私の例が、この新しいツールのパワーと使いやすさを実証し、アプリケーションデータ(トランザクション、ストリーム)を監視するように促してくれることを願っています、キューなど)RedisTimeSeriesを使用します。 GrafanaプラグインにRedisデータソースを使用する方法と理由に関するその他の投稿にご期待ください。


  1. Grafana用のRedisデータソースで構築された3つの実際のアプリ

    更新3/29/21:https://coronavirusapi.com/は最近、データへの無料アクセスを閉鎖し、登録済みのファーストレスポンダーのみが利用できるようにしました。残念ながら、これはコロナウイルスの症例視覚化プロジェクトのデモが機能しなくなることを意味しますが、Grafana WorldmapパネルにRedisTimeSeriesデータを表示する必要がある場合、ヒントは他の多くの実装にも役立ちます。 以前の投稿では、Grafana用の新しいRedisデータソースの使用方法を紹介して示しました: Grafana用のRedisデータソースプラグインの紹介 Grafanaプラグ

  2. Grafana用のRedisデータソースプラグインの紹介

    Grafanaは、広く使用されている有名なオープンソースアプリケーション監視ツールです。そして今、Grafanaプラグイン用の新しいRedisデータソースのおかげで、Redisで動作します! この新機能により、DevOpsの実践者とデータベース管理者は、使い慣れたツールを使用して、Redisデータベースとアプリケーションデータを監視するためのダッシュボードを簡単に作成できます。新しいGrafanaRedisデータソースプラグインを使用すると、RedisTimeSeriesデータと、文字列、ハッシュ、セットなどのコアRedisデータ型を視覚化できます。また、 SLOWLOG GETなどのRe