(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024012091
(43)【公開日】2024-01-25
(54)【発明の名称】時系列データベースにおける記録管理
(51)【国際特許分類】
G06F 16/906 20190101AFI20240118BHJP
G06F 16/907 20190101ALI20240118BHJP
【FI】
G06F16/906
G06F16/907
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023090304
(22)【出願日】2023-05-31
(31)【優先権主張番号】17/812,527
(32)【優先日】2022-07-14
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】フアイ ロン ジャン
(72)【発明者】
【氏名】ペン フイ ジアン
(72)【発明者】
【氏名】シン シン シェン
(72)【発明者】
【氏名】ミン レイ ジャン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175FB02
5B175FB04
5B175KA10
(57)【要約】
【課題】TSDBは、あらゆる種類のメトリック及びラベルを有する記録を記憶及び管理する必要があり、記録の非効率的な管理及び使用に繋がる。
【解決手段】時系列データベースにおける記録管理のためのコンピュータ実装方法、システム、及びコンピュータプログラム製品が開示されている。TSDBにおける記録管理のためのコンピュータ実装方法において、時系列記録は、1つ又は複数の処理ユニットによって、分散されたソースから取得され得る。記録は、1つ又は複数の処理ユニットによって、記録のそれぞれのタイムスタンプに基づき、異なる記録グループに分類され得る。記録グループのそれぞれにおける記録は、1つ又は複数の処理ユニットによって、正規化された記録に正規化され得る。正規化された記録は、1つ又は複数の処理ユニットによって、TSDBに記憶され得る。
【選択図】
図4
【特許請求の範囲】
【請求項1】
時系列データベース(TSDB)における記録管理のためのコンピュータ実装方法であって:
1つ又は複数の処理ユニットが、分散されたソースから時系列記録を取得する段階;
1つ又は複数の処理ユニットが、前記時系列記録のそれぞれのタイムスタンプに基づき、前記時系列記録を異なる記録グループに分類する段階;
1つ又は複数の処理ユニットが、前記記録グループのそれぞれにおける前記時系列記録を、正規化された記録に正規化する段階;及び
1つ又は複数の処理ユニットが、前記正規化された記録を、前記TSDBに記憶する段階
を備える、コンピュータ実装方法。
【請求項2】
前記記録グループのそれぞれにおける前記時系列記録を正規化された記録に前記正規化する段階は:
1つ又は複数の処理ユニットが、辞書に記憶されたメトリック間及びラベル間のマッピング関係に基づき、前記時系列記録のメトリック及びラベルを、正規化されたメトリック及び正規化されたラベルにマッピングする段階;及び
1つ又は複数の処理ユニットが、前記メトリック及び前記ラベルの前記マッピングに基づき、前記時系列記録の値を適合させる段階
を有する、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記辞書に記憶された前記マッピング関係は、事前定義されたマッピング関係を含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記辞書に記憶された前記マッピング関係を、前記時系列記録の値の傾向に基づき更新する段階を更に備える、請求項2に記載のコンピュータ実装方法。
【請求項5】
前記正規化された記録を前記TSDBに前記記憶する段階は:
1つ又は複数の処理ユニットが、共有された記録と同じメトリック、同じラベル、及び同じ値を含む前記正規化された記録のうちの1つのみを記憶する段階を有する、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
1つ又は複数の処理ユニットが、同じメトリック及び同じラベルを有する前記正規化された記録を、前記正規化された記録のタイムスタンプに基づき、時系列に並べ替える段階を更に備える、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
前記時系列記録を異なる記録グループに前記分類する段階は、以下のうちの1つ:
1つ又は複数の処理ユニットが、同じタイムスタンプを含む記録を、同じ記録グループにグループ化する段階;
1つ又は複数の処理ユニットが、同じ時間間隔でサンプリングされた記録を、同じ記録グループにグループ化する段階;及び
1つ又は複数の処理ユニットが、倍数関係を含む時間間隔でサンプリングされた記録を、同じ記録グループにグループ化する段階
を有する、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
前記正規化された記録を前記TSDBに前記記憶する段階は、前記正規化された記録のそれぞれについて:
1つ又は複数の処理ユニットが、前記正規化された記録のキーを汎用一意識別子(UUID)に変換する段階、ここで、前記キーは、前記正規化された記録のメトリック及びラベルを含む;及び
1つ又は複数の処理ユニットが、前記正規化された記録の前記UUID、値、及びタイムスタンプを前記TSDBに記憶する段階
を有する、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項9】
1つ又は複数の処理ユニットが、前記キー及び前記UUIDの間のマッピング関係を、前記TSDBに記憶する段階を更に備える、請求項8に記載のコンピュータ実装方法。
【請求項10】
1つ又は複数の処理ユニットが、時系列記録の要求から、要求されたタイムスタンプ、及び、要求されたメトリック及び要求されたラベルを有する要求されたキーを解析する段階;
1つ又は複数の処理ユニットが、前記要求されたキーを要求されたUUIDに変換する段階;及び
1つ又は複数の処理ユニットが、前記要求されたUUID及び前記要求されたタイムスタンプに基づき、前記要求された時系列記録を前記TSDBにおいて検索する段階
を更に備える、請求項8に記載のコンピュータ実装方法。
【請求項11】
1つ又は複数の処理ユニットが、時系列記録の要求から、要求されたタイムスタンプ、及び、要求されたメトリック及び要求されたラベルを有する要求されたキーを解析する段階;
1つ又は複数の処理ユニットが、辞書に記憶されたメトリック間及びラベル間のマッピング関係に基づき、前記要求されたメトリック及び前記要求されたラベルを、正規化された要求されたメトリック及び正規化された要求されたラベルにマッピングする段階;
1つ又は複数の処理ユニットが、前記正規化された要求されたメトリック及び前記正規化された要求されたラベルを、要求されたUUIDに変換する段階;及び
1つ又は複数の処理ユニットが、前記要求されたUUID及び前記要求されたタイムスタンプに基づき、前記要求された時系列記録を前記TSDBにおいて検索する段階
を更に備える、請求項8に記載のコンピュータ実装方法。
【請求項12】
分散されたソースから前記記録を前記取得する段階は、以下のうちの少なくとも1つ:
1つ又は複数の処理ユニットが、前記分散されたソースから前記記録をプルする段階;及び
1つ又は複数の処理ユニットが、前記分散されたソースからプッシュされた前記記録を取得する段階
を有する、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項13】
時系列データベース(TSDB)における記録管理のためのシステムであって、
1つ又は複数のプロセッサ;
前記1つ又は複数のプロセッサのうちの少なくとも1つに結合されたメモリ;
前記メモリに記憶されたコンピュータプログラム命令のセット、これは、前記1つ又は複数のプロセッサのうちの少なくとも1つによって実行されると:
分散されたソースから時系列記録を取得する手順;
前記時系列記録のそれぞれのタイムスタンプに基づき、前記時系列記録を異なる記録グループに分類する手順;
前記記録グループのそれぞれにおける前記時系列記録を、正規化された記録に正規化する手順;及び
前記正規化された記録を前記TSDBに記憶する手順
の動作を実行する
を備える、システム。
【請求項14】
前記記録グループのそれぞれにおける前記時系列記録を正規化された記録に前記正規化する手順は:
辞書に記憶されたメトリック間及びラベル間のマッピング関係に基づき、前記時系列記録のメトリック及びラベルを、正規化されたメトリック及び正規化されたラベルにマッピングする手順;及び
前記メトリック及び前記ラベルの前記マッピングに基づき、前記時系列記録の値を適合させる手順
を有する、請求項13に記載のシステム。
【請求項15】
前記コンピュータプログラム命令のセットは、前記辞書に記憶された前記マッピング関係を、前記時系列記録の値の傾向に基づき更新する手順の動作を実行する、請求項14に記載のシステム。
【請求項16】
前記正規化された記録を前記TSDBに前記記憶する手順は、共有された記録と同じメトリック、同じラベル、及び同じ値を含む前記正規化された記録のうちの1つのみを記憶する手順を有する、請求項13から15のいずれか一項に記載のシステム。
【請求項17】
前記コンピュータプログラム命令のセットは、同じメトリック及び同じラベルを有する前記正規化された記録を、前記正規化された記録のタイムスタンプに基づき、時系列に並べ替える手順の動作を更に実行する、請求項13から15のいずれか一項に記載のシステム。
【請求項18】
前記時系列記録を異なる記録グループに前記分類する手順は、以下:
同じタイムスタンプを含む記録を同じ記録グループにグループ化する手順;
同じ時間間隔でサンプリングされた記録を同じ記録グループにグループ化する手順;及び
倍数関係を含む時間間隔でサンプリングされた記録を同じ記録グループにグループ化する手順
のうちの1つを有する、請求項13から15のいずれか一項に記載のシステム。
【請求項19】
前記正規化された記録を前記TSDBに前記記憶する手順は、前記正規化された記録のそれぞれについて:
前記正規化された記録のキーを汎用一意識別子(UUID)に変換する手順、ここで、前記キーは、前記正規化された記録のメトリック及びラベル含む;及び
前記正規化された記録の前記UUID、値、及びタイムスタンプを前記TSDBに記憶する手順
を有する、請求項13から15のいずれか一項に記載のシステム。
【請求項20】
時系列データベース(TSDB)における記録管理のためのコンピュータプログラムであって、プロセッサに:
分散されたソースから時系列記録を取得する手順;
前記時系列記録のそれぞれのタイムスタンプに基づき、前記時系列記録を異なる記録グループに分類する手順;
前記記録グループのそれぞれにおける前記時系列記録を、正規化された記録に正規化する手順;及び
前記正規化された記録を前記TSDBに記憶する手順
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、記録管理に関し、より具体的には、時系列データベース(TSDB)における記録管理のためのコンピュータ実装方法、システム、及びコンピュータプログラム製品に関する。
【背景技術】
【0002】
TSDBは、時系列記録又はサンプルと称され得る、タイムスタンプが付されたデータを記憶及び管理するデータベースである。時系列記録は、株式市場の価格、環境における気温、CPU使用率等などの、経時的に追跡又は監視される測定値又は事象であり得る。OpenTSDB、Prometheus、及びInfluxDBなど、多くのTSDBが存在する。TSDBは、金融取引システム、ハードウェア監視システム及び環境監視システムなど、様々な分野においてアプリケーションを有する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
TSDBは、あらゆる種類のメトリック及びラベルを有する記録を記憶及び管理する必要があり、記録の非効率的な管理及び使用に繋がる。
【課題を解決するための手段】
【0004】
本開示の一実施形態によれば、TSDBにおける記録管理のためのコンピュータ実装方法が提供される。この方法において、時系列記録は、1つ又は複数の処理ユニットによって、分散されたソースから取得され得る。記録は、1つ又は複数の処理ユニットによって、記録のそれぞれのタイムスタンプに基づき、異なる記録グループに分類され得る。記録グループのそれぞれにおける記録は、1つ又は複数の処理ユニットによって、正規化された記録に正規化され得る。正規化された記録は、1つ又は複数の処理ユニットによって、TSDBに記憶され得る。この方法は、TSDBにおいて分散されたメトリックを管理する利点を提供する。管理された分散されたメトリックは、ラベルを符号化してUUIDを生成する際に、マッピングを保存する。
【0005】
特定の実施形態において、方法は、辞書に記憶されたメトリック間及びラベル間のマッピング関係に基づき、記録のメトリック及びラベルを、正規化されたメトリック及び正規化されたラベルにマッピングする段階、及びメトリック及びラベルのマッピングに基づき、記録の値を適合させる段階を備え得る。更に、辞書に記憶されたマッピング関係は、事前定義されたマッピング関係を含み得る。本開示の特定の実施形態は、辞書に記憶されたマッピング関係を、記録の値の傾向に基づき更新する段階をも備え得る。マッピング関係は、分散されたメトリックの管理及び使用における効率を改善することができる。
【0006】
本開示の特定の実施形態において、正規化された記録をTSDBに記憶する段階は、共有された記録と同じメトリック、同じラベル、及び同じ値を含む正規化された記録のうちの1つのみを記憶する段階を有し得る。
【0007】
特定の実施形態において、方法は、同じメトリック及び同じラベルを有する正規化された記録を、当該正規化された記録のタイムスタンプに基づき、時系列に並べ替える段階を備え得る。正規化された記録のタイムスタンプは、分散されたメトリックを効率的に管理及び使用するための利点を提供する。
【0008】
本開示の特定の実施形態において、記録を異なる記録グループに分類する任意の段階は、同じタイムスタンプを含む記録を同じ記録グループにグループ化する段階、同じ時間間隔でサンプリングされた記録を同じ記録グループにグループ化する段階、又は倍数関係を含む時間間隔でサンプリングされた記録を同じ記録グループにグループ化する段階のいずれかを有し得る。
【0009】
本開示の特定の実施形態において、正規化された記録をTSDBに記憶する任意の段階は、正規化された記録のキーを汎用一意識別子(UUID)に変換する段階を有し得る。キーは、正規化された記録のメトリック及びラベルを含み得る。正規化された記録を記憶する段階は、正規化された記録のUUID、値、及びタイムスタンプをTSDBに記憶する段階をも有し得る。更に、方法は、キー及びUUIDの間のマッピング関係をTSDBに記憶する段階を備え得る。方法は、時系列記録の要求から、要求されたタイムスタンプ、及び、要求されたメトリック及び要求されたラベルを有する要求されたキーを解析する段階、要求されたキーを要求されたUUIDに変換する段階、及び、要求されたUUID及び要求されたタイムスタンプに基づき、要求された時系列記録をTSDBにおいて検索する段階をも備え得る。この方法で行われた記憶する段階は、ラベルを符号化してUUIDを生成し、次に復号する際のマッピングを保存することができる。
【0010】
本開示の特定の実施形態において、方法は、時系列記録の要求から、要求されたタイムスタンプ、及び、要求されたメトリック及び要求されたラベルを有する要求されたキーを解析する段階、辞書に記憶されたメトリック間及びラベル間のマッピング関係に基づき、要求されたメトリック及び要求されたラベルを、正規化された要求されたメトリック及び正規化された要求されたラベルにマッピングする段階、正規化された要求されたメトリック及び正規化された要求されたラベルを、要求されたUUIDに変換する段階、及び、要求されたUUID及び要求されたタイムスタンプに基づき、要求された時系列記録をTSDBにおいて検索する段階を備え得る。
【0011】
方法は、分散されたソースから記録を取得する段階が、分散されたソースから記録をプルする(pull)段階、又は分散されたソースからプッシュされた(push)記録を取得する段階を有する実施形態をも備え得る。このような方法で記録を取得する段階は、TSDBにおける分散されたメトリックを効果的に管理することができる。
【0012】
本開示の別の実施形態によれば、TSDBにおける記録管理のためのシステムが提供される。システムは、1つ又は複数のプロセッサ、プロセッサのうちの少なくとも1つに結合されたメモリ、及びメモリに記憶されたコンピュータプログラム命令のセットを備える。プロセッサのうちの少なくとも1つによって実行されると、コンピュータプログラム命令のセットは、以下の動作を実行する。時系列記録は、分散されたソースから取得され得る。記録は、記録のそれぞれのタイムスタンプに基づき、異なる記録グループに分類され得る。記録グループのそれぞれにおける記録は、正規化された記録に正規化され得る。正規化された記録は、TSDBに記憶され得る。
【0013】
本開示の更に別の実施形態によれば、TSDBにおける記録管理のためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、それにより具現化されるプログラム命令を含むコンピュータ可読記憶媒体を有する。プログラム命令は、プロセッサに以下の動作を実行させるために、プロセッサによって実行可能である。時系列記録は、分散されたソースから取得され得る。記録は、記録のそれぞれのタイムスタンプに基づき、異なる記録グループに分類され得る。記録グループのそれぞれにおける記録は、正規化された記録に正規化され得る。正規化された記録は、TSDBに記憶され得る。
【図面の簡単な説明】
【0014】
添付図面における本開示のいくつかの実施形態のより詳細な説明を通じて、本開示の上記及び他の目的、特徴、及び利点がより明らかになるが、本開示の実施形態において、同じ参照は、概して同じコンポーネントを指す。
【0015】
【
図1】本開示の一実施形態に係る、クラウドコンピューティングノードを示す。
【0016】
【
図2】本開示の一実施形態に係る、クラウドコンピューティング環境を示す。
【0017】
【
図3】本開示の一実施形態に係る、抽象化モデル層を示す。
【0018】
【
図4】本開示の一実施形態に係る、TSDBにおける記録管理のための方法のフローチャートを示す。
【0019】
【
図5】本開示の一実施形態に係る、記録管理のための方法における段階の例示的な手順を示す。
【0020】
【
図6】本開示の一実施形態に係る、記録管理のための方法における別の段階の例示的な手順を示す。
【0021】
【
図7】本開示の一実施形態に係る、キーからUUIDへの変換の説明的な例を示す。
【0022】
【
図8】本開示の一実施形態に係る、TSDBにおいて時系列記録を検索する段階のためのプロセスを示す。
【0023】
【
図9】本開示の一実施形態に係る、TSDBにおいて時系列記録を検索する段階のための別のプロセスを示す。
【0024】
【
図10】本開示の一実施形態に係る、記録管理のための方法における段階の結果の説明的な例を示す。
【0025】
【
図11】本開示の別の実施形態に係る、TSDBにおける記録管理のためのシステムを示す。
【発明を実施するための形態】
【0026】
本開示の実施形態が示されている添付図面を参照しながら、いくつかの実施形態がより詳細に説明される。しかしながら、本開示は様々な方法で実装され得、そのため、本明細書において開示された実施形態に限定されるものと解釈されるべきではない。
【0027】
本開示にはクラウドコンピューティングに関する詳細な説明が含まれているが、本明細書で述べられている教示内容の実装がクラウドコンピューティング環境に限定されるものではないことを理解されたい。むしろ、本開示の実施形態は、現在既知の、又は今後開発される任意の他のタイプのコンピューティング環境と組み合わせて実装されることが可能である。
【0028】
クラウドコンピューティングは、サービスのプロバイダとの最小の管理努力又は相互作用を伴って迅速にプロビジョニング及びリリースされ得る、構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、及びサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするサービス供給のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
【0029】
特性は以下の通りである。
【0030】
オンデマンドセルフサービス:クラウドコンシューマは、サービスプロバイダとの人的相互作用を必要とすることなく必要に応じて自動的に、サーバ時間及びネットワークストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
【0031】
幅広いネットワークアクセス:機能はネットワークを介して利用可能であり、異種のシン又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA(登録商標))による使用を促す標準メカニズムを通じてアクセスされる。
【0032】
リソースのプール化:プロバイダのコンピューティングリソースをプール化し、マルチテナントモデルを用いて複数のコンシューマにサービスを提供することで、異なる物理リソース及び仮想リソースが需要に応じて動的に割り当て及び再割り当てされる。コンシューマは一般に提供されたリソースの正確なロケーションに対して制御又は知識を有していないが、より高いレベルの抽象化(例えば、国、州、又はデータセンタ)においてロケーションを指定することが可能である場合があるという点で、ロケーションの独立性がある。
【0033】
迅速な弾力性:機能が迅速かつ弾力的に、いくつかの事例では自動的にプロビジョニングされ、速やかにスケールアウトし、かつ迅速にリリースされ、速やかにスケールインすることができる。コンシューマにとって、多くの場合、プロビジョニングに利用可能な機能は無制限に見え、任意の時点において任意の量で購入され得る。
【0034】
測定サービス:クラウドシステムは、サービスのタイプ(例えばストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適したある程度の抽象化レベルで計測機能を活用することにより、リソース使用を自動的に制御及び最適化する。リソース使用率は、監視、制御、及び報告され得、これにより、利用されるサービスのプロバイダ及びコンシューマの両方に対して透明性が提供される。
【0035】
サービスモデルは以下の通りである。
【0036】
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供される機能は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインタフェースを通じて様々なクライアントデバイスからアクセス可能である。コンシューマは、考えられる例外としての限定されたユーザ固有のアプリケーション構成設定を除き、ネットワーク、サーバ、オペレーティングシステム、ストレージ又は更には個々のアプリケーション機能を含む、基礎をなすクラウドインフラストラクチャを管理又は制御しない。
【0037】
プラットフォームアズアサービス(PaaS):コンシューマに提供される機能は、クラウドインフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成される、コンシューマが作成又は取得したアプリケーションを展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーションホスティング環境構成に対する制御を有する。
【0038】
インフラストラクチャアズアサービス(IaaS):コンシューマに提供される機能は、処理、ストレージ、ネットワーク及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、ここでコンシューマは、オペレーティングシステム及びアプリケーションを含み得る任意のソフトウェアを展開及び実行することができる。コンシューマは、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションに対する制御を有するとともに、場合によっては選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)に対する限定的な制御を有する。
【0039】
展開モデルは以下の通りである。
【0040】
プライベートクラウド:クラウドインフラストラクチャは、組織のためにのみ動作する。それは、組織又はサードパーティによって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
【0041】
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシー及びコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。それは、組織又はサードパーティによって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
【0042】
パブリッククラウド:クラウドインフラストラクチャは、一般大衆又は大規模な業界団体において利用可能であり、クラウドサービスを販売する組織によって所有される。
【0043】
ハイブリッドクラウド:クラウドインフラストラクチャは、2つ又はそれよりも多くのクラウド(プライベート、コミュニティ、又はパブリック)の複合体であり、独自のエンティティのままであるが、データ及びアプリケーションのポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準技術又は独自技術によって結び付けられる。
【0044】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、及び意味相互運用性に焦点を当てたサービス指向型である。クラウドコンピューティングの中核には、相互接続されたノードのネットワークを含むインフラストラクチャが存在する。
【0045】
ここで
図1を参照すると、クラウドコンピューティングノードの例の概略が示されている。クラウドコンピューティングノード10は、好適なクラウドコンピューティングノードの一例に過ぎず、本明細書に記載の本開示の実施形態の使用範囲又は機能に関するいかなる制限をも示唆することは意図されていない。いずれにしても、クラウドコンピューティングノード10は、上記に記載の機能のいずれかを実装及び/又は実行することができる。
【0046】
クラウドコンピューティングノード10には、コンピュータシステム/サーバ12又は通信デバイスなどのポータブル電子デバイスが存在し、これらは、多数の他の汎用又は専用コンピューティングシステム環境又は構成とともに動作可能である。コンピュータシステム/サーバ12とともに使用するのに好適であり得る周知のコンピューティングシステム、環境、及び/又は構成の例には、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、手持ち型デバイスもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブル家電、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、上述のシステム又はデバイスのいずれかを含む分散型クラウドコンピューティング環境などが含まれるが、これらに限定されない。
【0047】
コンピュータシステム/サーバ12は、コンピュータシステムによって実行される、プログラムモジュールなどのコンピュータシステム実行可能命令の一般的な文脈で説明され得る。一般には、プログラムモジュールは、特定のタスクを実行する、又は、特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、及び、データ構造などを含み得る。コンピュータシステム/サーバ12は、分散型クラウドコンピューティング環境において実施されてよく、ここで、タスクは、通信ネットワークを通じてリンクされているリモート処理デバイスによって実行される。分散型クラウドコンピューティング環境では、メモリ記憶デバイスを含むローカルコンピュータシステム記憶媒体及びリモートコンピュータシステム記憶媒体の両方にプログラムモジュールが配置されてよい。
【0048】
図1に示す通り、クラウドコンピューティングノード10におけるコンピュータシステム/サーバ12は、汎用コンピューティングデバイスの形態で示されている。コンピュータシステム/サーバ12のコンポーネントは、1つ又は複数のプロセッサ又は処理ユニット16、システムメモリ28、及びシステムメモリ28を含む様々なシステムコンポーネントをプロセッサ16に結合するバス18を含み得るが、これらに限定されない。
【0049】
バス18は、メモリバス又はメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィックスポート、及び様々なバスアーキテクチャのいずれかを使用するプロセッサ又はローカルバスを含む、いくつかのタイプのバス構造のいずれかのうちの1つ又は複数を表している。限定ではなく例として、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンスドISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、及びペリフェラルコンポーネントインターコネクト(PCI)バスを含む。
【0050】
コンピュータシステム/サーバ12は、通常、様々なコンピュータシステム可読媒体を含む。そのような媒体は、コンピュータシステム/サーバ12によってアクセス可能な任意の利用可能な媒体であってよく、揮発性媒体及び不揮発性媒体、リムーバブル媒体及びノンリムーバブル媒体の両方を含む。
【0051】
システムメモリ28は、ランダムアクセスメモリ(RAM)30及び/又はキャッシュメモリ32などの揮発性メモリの形態のコンピュータシステム可読媒体を含み得る。コンピュータシステム/サーバ12は、他のリムーバブル/ノンリムーバブル、揮発性/不揮発性コンピュータシステム記憶媒体を更に含んでよい。単なる例として、ストレージシステム34は、(図示せず、通常「ハードドライブ」と称される)ノンリムーバブル不揮発性磁気媒体からの読み取り、及びこれに対する書き込みをするために提供され得る。図示されていないが、リムーバブル不揮発性磁気ディスク(例えば、「フロッピディスク」)からの読み取り、及びこれへの書き込みを行うための磁気ディスクドライブ及び、CD-ROM、DVD-ROM又は他の光媒体等のリムーバブル不揮発性光ディスクからの読み取り、及びこれに対する書き込みを行うための光ディスクドライブが提供され得る。そのような場合、各々が1つ又は複数のデータ媒体インタフェースによりバス18に接続され得る。以下で更に示され、説明される通り、メモリ28は、本開示の実施形態の機能を実行するように構成されているプログラムモジュールのセット(例えば、少なくとも1つ)を有する、少なくとも1つのプログラム製品を含み得る。
【0052】
オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータに加えて、プログラムモジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40が、限定ではなく例としてメモリ28に記憶され得る。オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータのそれぞれ、又はそれらのいくつかの組み合わせは、ネットワーク環境の実装を含み得る。プログラムモジュール42は、概して、本明細書に記載の本開示の実施形態の機能及び/又は方法論を実行する。
【0053】
コンピュータシステム/サーバ12はまた、キーボード、ポインティングデバイス、ディスプレイ24等などの1つ又は複数の外部デバイス14、ユーザがコンピュータシステム/サーバ12と相互作用することを可能にする1つ又は複数のデバイス、及び/又は、コンピュータシステム/サーバ12が1つ又は複数の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワークカード、モデムなど)と通信し得る。そのような通信は、入出力(I/O)インタフェース22を介して生じ得る。また更に、コンピュータシステム/サーバ12は、ネットワークアダプタ20を介して、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、及び/又はパブリックネットワーク(例えば、インターネット)等の1つ又は複数のネットワークと通信し得る。図示されている通り、ネットワークアダプタ20は、バス18を介して、コンピュータシステム/サーバ12の他のコンポーネントと通信する。図示されていないが、他のハードウェア及び/又はソフトウェアコンポーネントをコンピュータシステム/サーバ12と共に使用できることを理解されたい。例としては、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイブストレージシステム等を含むが、これらに限定されない。
【0054】
ここで
図2を参照すると、例示的なクラウドコンピューティング環境50が示されている。図示のように、クラウドコンピューティング環境50は、例えば、パーソナルデジタルアシスタント(PDA)又はセルラー電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び/又は自動車コンピュータシステム54Nなどの、クラウドコンシューマによって使用されるローカルコンピューティングデバイスが通信できる1つ又は複数のクラウドコンピューティングノード10を含む。ノード10は、互いに通信し得る。それらは、本明細書の上記で説明されたようなプライベートクラウド、コミュニティクラウド、パブリッククラウド、もしくはハイブリッドクラウド、又はこれらの組み合わせ等の、1つ又は複数のネットワーク内で物理的に又は仮想的にグループ化されてよい(図示せず)。これにより、クラウドコンピューティング環境50は、クラウドコンシューマがローカルコンピューティングデバイス上でリソースを維持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアを提供することができる。
図2に示されるコンピューティングデバイス54A-Nのタイプは、例示のみを意図したものであり、コンピューティングノード10及びクラウドコンピューティング環境50は、任意のタイプのネットワーク及び/又はネットワークアドレス可能接続を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
【0055】
ここで
図3を参照すると、クラウドコンピューティング環境50(
図2)によって提供された機能抽象化層のセットが示されている。
図3に示されたコンポーネント、層、及び機能は、例示のみを意図したものであり、本開示の実施形態はこれに限定されるものではないことを予め理解されたい。図示されている通り、以下の層及び対応する機能が提供されている。
【0056】
ハードウェア及びソフトウェア層60は、ハードウェアコンポーネント及びソフトウェアコンポーネントを備える。ハードウェアコンポーネントの例は、メインフレーム61;RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62;サーバ63;ブレードサーバ64;記憶デバイス65;及びネットワーク及びネットワーキングコンポーネント66を含む。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67及びデータベースソフトウェア68を含む。
【0057】
仮想化層70は、以下の例の仮想エンティティ、すなわち仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、並びに仮想クライアント75がそこから提供され得る抽象化層を提供する。
【0058】
1つの例において、管理層80は、以下で説明される機能を提供してよい。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用される、コンピューティングリソース及び他のリソースの動的な調達を提供する。計量及び価格設定82は、クラウドコンピューティング環境内でリソースが利用されるときのコスト追跡、及びこれらのリソースの消費に対する請求又はインボイス作成を提供する。1つの例において、これらのリソースは、アプリケーションソフトウェアライセンスを含んでよい。セキュリティは、クラウドコンシューマ及びタスクに対する識別情報検証、並びに、データ及び他のリソースに対する保護を提供する。ユーザポータル83は、コンシューマ及びシステム管理者に、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要とされるサービスレベルが満たされるように、クラウドコンピューティングリソース割り当て及び管理を提供する。サービスレベルアグリーメント(SLA)計画及び履行85は、SLAに従って将来の必要性が予期されるクラウドコンピューティングリソースの事前準備及び調達を提供する。
【0059】
ワークロード層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロード及び機能の例は、マッピング及びナビゲーション91;ソフトウェア開発及びライフサイクル管理92;仮想教室教育配信93;データ分析処理94;取引処理95;及び記録管理96を含む。
【0060】
図3における機能抽象化層は、単なる例である。必要に応じて、1つ又は複数の層がそこに追加され得、
図3における1つ又は複数の層が統合又は除外され得る。加えて、
図3の各層において、いくつかのコンポーネントが除外又は統合され得、1つ又は複数のコンポーネントが追加され得る。
【0061】
TSDBは、時系列記録を記憶及び管理することができ、時系列記録は、タイムスタンプを有する記録であり得、サンプリングソースから収集され得る。時系列記録のフォーマットは、<キー><タイムスタンプ><値>であり得、これは、タイムスタンプを有するキーと値のペアである。キーは、記録の属性を反映するメトリック、及びメトリックの次元特性を反映するラベルで構成され得、<メトリック>{<ラベル>}として表現され得る。ラベルは、1つ又は複数のサブラベルを含んでよく、そのそれぞれが、サブラベル名及びサブラベル値で構成される。これに関し、キーもまた、<メトリック>{<サブラベル名1>=<サブラベル値1>、<サブラベル名2>=<サブラベル値2>...}として表現され得る。例えば、キーは、http_request_total{method='POST', status='200'}として表現され、これは、POSTの要求タイプ及び200の応答ステータスを有するHTTP要求の総数を表してよい。
【0062】
時系列記録の4つの説明的な例は以下に示す通りである。
1 cpu_use{ip='10.27.120.7', id='3'} 948258276 14.5%
2 cpu_use{ip='10.27.120.7', id='3'} 948258286 14.0%
3 http_request_total{status='200',method='GET'} 948258296 94355
4 meterCurrent{device='d01', location='bj'} 948278275 10.2
【0063】
第1の記録に関し、キーは、メトリックcpu_use及びラベル{ip='10.27.120.7', id='3'}で構成されるcpu_use{ip='10.27.120.7', id='3'}であり;タイムスタンプは948258276であり;値は14.5%である。第2の記録に関し、キーは、第1の記録と同様、cpu_use{ip='10.27.120.7', id='3'}であり、これは、これらの2つの記録が(10.27.120.7のIP及び3のIDを有する)同じサーバ又はホストに対する同じメトリック(すなわち、CPU使用率)を対象とすることを意味しており;タイムスタンプは948258286であり、値は14.0%である。第3の記録に関し、キーは、メトリックhttp_request_total及びラベル{status='200',method='GET'}で構成されるhttp_request_total{status='200',method='GET'}であり;タイムスタンプは948258296であり;値は94355である。第4の記録に関し、キーは、メトリックmeterCurrent及びラベル{device='d01',location='bj'}で構成されるmeterCurrent{device='d01',location='bj'}であり;タイムスタンプは948278275であり;値は10.2である。
【0064】
時系列記録は、様々なサンプリングソースによって様々な対象上でサンプリングされてよく、異なるサンプリングソースからの記録のいくつかは、同じサンプリングされた対象と同じ属性を表してよい。例えば、1つの物理機械上で実行されている複数のアプリケーション又はサーバは、当該機械のCPU使用率及びIPアドレスなど、機械の属性に関する記録を別個にサンプリングしてよい。従って、異なるアプリケーション及び/又はサーバなどの異なるサンプリングソースは、物理機械などの同じサンプリングされた対象のCPU使用率及び/又はIPアドレスなど、同じ属性を表す記録をサンプリングしてよい。他の例として、1つの物理機械上で実行されているアプリケーションのプロセス又はスレッドは、当該アプリケーション及び/又は当該物理機械の属性に関する記録を別個にサンプリングしてよく、1つのホスト上の仮想機械は、当該ホストの属性に関する記録を別個にサンプリングしてよい。従って、大量の重複した又は冗長な記録が存在する場合があり、これは、ストレージコストを増大させる。他方、異なるサンプリングソースからの記録のメトリック及びラベルには、異なる名称が付されてよい。従って、TSDBは、あらゆる種類のメトリック及びラベルを有する記録を記憶及び管理する必要があり、記録の非効率的な管理及び使用に繋がる。
【0065】
本開示の実施形態は、上述の技術的問題のうちの少なくとも1つを解決することを目的としており、TSDBにおける記録管理のための方法、システム及びコンピュータプログラム製品を提案することで、メトリック及びラベルの命名の統一を可能にし、これにより、TSDBにおける記録の効率的な管理及び使用を可能にする。
【0066】
ここで
図4を参照すると、本開示の一実施形態に係る、TSDBにおける記録管理のための方法400のフローチャートが示されている。方法400は、1つ又は複数の処理ユニットによって実装され得、例えば、
図1のコンピュータシステム/サーバ12によって実装され得る。
【0067】
段階410において、時系列記録は、分散されたソースから取得され得る。分散されたソースは、上述の通り、異なるアプリケーション、サーバ、プロセス、スレッド及び/又は仮想機械であり得る。TSDBが記録を取得するための様々な方法が存在し得る。いくつかの実施形態において、段階410は、分散されたソースから記録をプルする段階、及び分散されたソースからプッシュされた記録を取得する段階のうちの少なくとも1つを含み得る。例えば、記録は、アプリケーションサーバ又はAPIサーバからプルされ得、記録は、既存のTSDBにおけるデータ取得コンポーネントであるエクスポータによってプッシュされ得、又は、記録は、サンプリング又は監視すべき対象を動的に検出する既存のTSDBにおけるサービスディスカバリからプルされ得る。
【0068】
段階420において、記録は、記録のそれぞれのタイムスタンプに基づき、異なる記録グループに分類され得る。これは、関連性を有し得る記録の分類を目的としたものである。記録のタイムスタンプは、その記録がサンプリングされた時間を反映することができ、同じキーを有し、同じサンプリングソースによってサンプリングされた複数の記録のタイムスタンプは、サンプリング間隔又はサンプリングレートを反映することができる。例えば、第1のサンプリングソースによってサンプリングされた都市の気温に関する記録が、ある日の午前11:00のタイムスタンプを有し、第1のサンプリングソースによってサンプリングされた当該都市の気温に関する後続の記録が、その日の午後12:00のタイムスタンプを有し、第1のサンプリングソースによってサンプリングされた当該都市の気温に関する先行する記録が、その日の午前10:00のタイムスタンプを有する場合、当該都市の気温に関する第1のサンプリングソースのサンプリング間隔は1時間であることが導き出され得る。同じ時間又は同じ時間間隔でサンプリングされた記録は、関連性を有し得る。例えば、第1のサンプリングソースによって1時間の時間間隔でサンプリングされた記録、及び第2のサンプリングソースによって1時間の時間間隔でサンプリングされた記録は、それらが両方とも都市の気温に関する記録であり得るため、関連性を有し得る。他方、異なるサンプリングソースによって、異なる時間又は時間間隔でサンプリングされた記録は、関連性がより低い可能性がある。例えば、第1のサンプリングソースによって10分の時間間隔でサンプリングされた記録、及び第2のサンプリングソースによって3分の時間間隔でサンプリングされた記録は、前者がウェブサイトのクリックの数に関する記録であり得、後者がCPU使用率に関する記録であり得るため、関連性を有しない場合がある。加えて、第1の時間間隔でサンプリングされた記録は、第1の時間間隔と倍数関係を含む第2の時間間隔でサンプリングされた記録と関連性を有し得る。例えば、第1のサンプリングソースによって5分の時間間隔でサンプリングされた記録、及び第2のサンプリングソースによって5分の時間間隔の2倍の長さである10分の時間間隔でサンプリングされた記録は、それらが両方とも電気素子の電圧に関する記録であり得るため、関連性を有し得る。それに応じて、記録のそれぞれのタイムスタンプに基づき、記録を異なる記録グループに分類する様々な方法が存在し得る。例えば、第1の方法は、同じタイムスタンプを含む記録を、同じ記録グループにグループ化することであり、これは、当該記録のタイムスタンプを参照することによって直接的に行われ得る。第2の方法は、同じ時間間隔でサンプリングされた記録を、同じ記録グループにグループ化することである。例えば、第1のサンプリングソースから5分ごとにサンプリングされた記録及び第2のサンプリングソースから5分ごとにサンプリングされた記録は、同じ記録グループにグループ化され得る。第3の方法は、倍数関係を含む時間間隔でサンプリングされた記録を、同じ記録グループにグループ化することである。例えば、第1のサンプリングソースから5分ごとにサンプリングされた記録及び第2のサンプリングソースから15分ごとにサンプリングされた記録は、同じ記録グループにグループ化され得る。15分の時間間隔は、5分の時間間隔と3倍の関係を有する。別の例として、第1のサンプリングソースから5分ごとにサンプリングされた記録、第2のサンプリングソースから15分ごとにサンプリングされた記録、及び第3のサンプリングソースから5分ごとにサンプリングされた記録、及び第4のサンプリングソースから60分ごとにサンプリングされた記録は、同じ記録グループにグループ化され得る。
【0069】
段階430において、記録グループのそれぞれにおける記録は、正規化された記録に正規化され得る。この段階は、記録のメトリック及びラベルの命名を統一することを目的としている。
図5は、本開示の一実施形態に係る、記録グループのそれぞれにおける記録を、正規化された記録に正規化する方法のプロセスを示す。
【0070】
本開示の実施形態によれば、メトリック間及びラベル間のマッピング関係は、TSDBにおいて辞書に記憶され得、マッピング関係を用いて正規化が行われ得る。辞書は、各正規化されたメトリック及びその関連する非正規メトリックの対応関係、及び、各正規化されたラベル及びその関連する非正規ラベルの対応関係を示すマッピング関係を記憶し得る。従って、記録グループのそれぞれについて、段階510で、その記録グループにおける記録のメトリック及びラベルは、辞書に記憶されたメトリック間及びラベル間のマッピング関係に基づき、正規化されたメトリック及び正規化されたラベルにマッピングされ得る。換言すれば、記録のメトリック及びラベルがその対応する正規化されたメトリック及び正規化されたラベルと異なる場合、当該メトリック及び当該ラベルは、その対応する正規化されたメトリック及び正規化されたラベルに変換される。例えば、辞書は、メトリックhttp_requests_total及びメトリックhttprequest_totalが、正規化されたメトリックhttp_request_totalにマッピングされ得ることを示すマッピング関係を記憶してよく、これにより、メトリックhttp_requests_total及びメトリックhttprequest_totalは両方とも、当該マッピング関係に基づき、正規化されたメトリックhttp_request_totalにマッピングされ得る。別の例として、辞書は、メトリックtemperature_Fahrenheitが、正規化されたメトリックtemperature_Celsiusにマッピングされ得ることを示すマッピング関係を記憶してよく、これにより、メトリックtemperature_Fahrenheitは、当該マッピング関係に基づき、正規化されたメトリックtemperature_Celsiusにマッピングされ得る。
【0071】
記録のメトリック及びラベルをマッピングする段階の後に、段階520で、メトリック及びラベルのマッピングに基づき、記録の値が適合され得る。例えば、メトリックtemperature_Fahrenheitを正規化されたメトリックtemperature_Celsiusにマッピングする段階の上記の例において、対応する記録の値は、C=(F-32)/1.8の式に基づき変換される必要があり、ここでCは摂氏における値を表し、Fは華氏における値を表す。別の例において、記録のメトリック又はラベルが10進数の表現形式から2進数の表現形式にマッピングされる場合、それに応じて値もまた変換される必要がある。
【0072】
いくつかの実施形態において、辞書に記憶されたマッピング関係は、事前定義されたマッピング関係を含み得る。事前定義されたマッピング関係は、既知の命名規則の知識に基づき、生成され得る。いくつかの実施形態において、辞書に記憶されたマッピング関係は、取得された記録の値の傾向に基づき、更新され得る。第1のキーを有する第1の記録のセットの値が、第2のキーを有する第2の記録のセットの値と類似する傾向(すなわち、時間に伴う変化)を有する場合、第1のキー及び第2のキーはおそらく、同じ意味の異なる表現である。従って、記録の値の傾向を観察することにより、同じ意味を有するメトリック及びラベルの異なる命名規則が検出され、辞書に追加され得る。それに応じて、第1のキーのメトリック及び第2のキーのメトリックの間のマッピング関係、及び、第1のキーのラベル及び第2のキーのラベルの間のマッピング関係が、辞書に追加され得る。辞書に記憶されたマッピング関係を更新する段階は、内部に記憶された事前定義されたマッピング関係を伴うことなく、辞書を最初から構築する段階をも含むことに留意されたい。マッピング関係を更新する段階は、段階430の前に実行され得る。
【0073】
段階430における正規化の後に、異なる表現形式を有するが同じ意味を有するメトリックは、正規化されたメトリックに統一され得、異なる表現形式を有するが同じ意味を有するラベルは、正規化されたラベルに統一され得、これは、TSDBにおいて管理されるべきメトリック及びラベルの数を大幅に低減する。次に、段階440において、正規化された記録は、TSDBに記憶され得る。
【0074】
正規化の後に、同じメトリック、同じラベル、及び同じ値を有する、重複した又は冗長な記録を特定することが可能である。上述の通り、大量の重複した又は冗長な記録が存在する場合がある。記憶領域を節約するために、重複した又は冗長な記録を、1部のみ記憶することができる。そのため、いくつかの実施形態において、段階440は、記憶領域の必要性が低下し得るように、共有された記録と同じメトリック、同じラベル、及び同じ値を含む正規化された記録のうちの1つのみを記憶する段階を有し得る。
【0075】
いくつかの実施形態において、記憶領域の必要性を低下させるために、正規化された記録のメトリック及びラベルを記憶する段階の代わりに、メトリック及びラベルから変換された汎用一意識別子(UUID)が記憶され得る。メトリック及びラベルは、通常、長い文字列の形式であり、UUIDは遥かに短くなり得る。
図6は、本開示の一実施形態に係る、TSDBに正規化された記録を記憶する方法のプロセスを示す。正規化された記録のそれぞれに関し、段階610で、正規化された記録のキーは、UUIDに変換され得る。正規化された記録のキーは、上述の通り、正規化された記録のメトリック及びラベルを含み得る。一例として、メッセージダイジェストアルゴリズム5(Message-Digest Algorithm 5:MD5)などのハッシュ関数が変換のために用いられ得る。別の例として、変換のために、TSDBにおいてルックアップテーブルが確立され得る。
図7は、キーからUUIDへの変換の説明的な例を示す。
図7から分かるように、キーの長い文字列は、遥かに短い表現の形式に変換され得る。変換の後、段階620において、正規化された記録のUUID、値、及びタイムスタンプは、TSDBに記憶され得る。いくつかの実施形態において、キー及びUUIDの間のマッピング関係もまた、TSDBに記憶され得、これにより、特定のUUIDに基づき、正規化された記録のキーを検索することが可能である。更に、UUIDに基づき、正規化された記録を検索することが可能である。
【0076】
いくつかの実施形態において、書き込み性能を改善するために、段階440は、ログ構造化マージ(Log Structured Merge:LSM)ツリーをストレージのために用いる段階を含み得る。
【0077】
いくつかの実施形態において、ユーザは、TSDBにアクセスすることができ、例えば、時系列記録の要求をサブミットすることができる。時系列記録の要求は、要求された記録の要求されたキーを備え得る。要求されたキーは、要求されたUUIDに変換され得、要求されたUUIDは、要求された時系列記録を検索するために、TSDBに記憶されたUUIDと比較され得る。方法400は、TSDBにおいて時系列記録を検索する段階を更に備え得る。
【0078】
図8は、TSDBにおいて時系列記録を検索する段階のプロセス800を示す。段階810で、要求されたタイムスタンプ及び要求されたキーは、時系列記録の要求から解析され得る。要求されたキーは、要求されたメトリック及び要求されたラベルを含み得る。要求されたタイムスタンプ及び要求されたキーを解析する段階は、構造化又は非構造化テキストから情報を抽出するための任意の好適な手段によって実装され得る。例えば、自然言語処理技術における単語分割のための任意の種類のトークナイザ又はソリューションが用いられ得る。段階820で、要求されたキーは、要求されたUUIDに変換され得る。例えば、段階610において用いられたものと同じハッシュ関数又はルックアップテーブルが、要求されたキーから要求されたUUIDへの変換において用いられ得る。段階830で、要求された時系列記録は、要求されたUUID及び要求されたタイムスタンプに基づき、TSDBにおいて検索され得る。段階620において説明した通り、各正規化された記録は、UUID、値、及びタイムスタンプとともに、TSDBに記憶され得る。要求されたUUID及び要求されたタイムスタンプを用いることにより、TSDBにおいて要求された記録と同じUUID及び同じタイムスタンプを含む時系列記録が、存在する場合に、発見され得る。
【0079】
TSDBは、正規化されたメトリック及び正規化されたラベルに対応するUUIDのみを記憶し得るため、いくつかの状況において、要求において要求されたメトリック及びラベルから直接変換されたUUIDとの合致をTSDBにおいて発見することができない場合がある。従って、いくつかの実施形態において、方法400は、TSDBにおける時系列記録を検索する段階の
図9において示されたプロセス900を更に備え得、当該プロセスにおいて、要求されたキーは、要求されたUUIDに変換される前に、正規化された要求されたメトリック及び正規化された要求されたラベルにマッピングされ得る。
図9に示す通り、段階910で、要求されたタイムスタンプ及び要求されたキーは、時系列記録の要求から解析され得る。要求されたキーは、要求されたメトリック及び要求されたラベルを含み得る。段階920で、要求されたメトリック及び要求されたラベルは、辞書に記憶されたメトリック間及びラベル間のマッピング関係に基づき、正規化された要求されたメトリック及び正規化された要求されたラベルにマッピングされ得る。ここで用いられる辞書は、段階510において用いられたのと同じものである。段階930で、正規化された要求されたメトリック及び正規化された要求されたラベルは、要求されたUUIDに変換され得る。例えば、段階610において用いられたのと同じハッシュ関数又はルックアップテーブルが、要求されたキーから要求されたUUIDへの変換において用いられ得る。段階940で、要求された時系列記録は、要求されたUUID及び要求されたタイムスタンプに基づき、TSDBにおいて検索され得る。段階620において説明した通り、各正規化された記録は、UUID、値、及びタイムスタンプとともに、TSDBに記憶され得る。要求されたUUID及び要求されたタイムスタンプを用いることにより、TSDBにおいて要求された記録と同じUUID及び同じタイムスタンプを含む時系列記録が、存在する場合に、発見され得る。
【0080】
いくつかの実施形態において、異なるソースから取得された同じキー(すなわち、同じメトリック及び同じラベル)を有する記録は、異なる時間にサンプリングされてよく、そのため、これらの記録は、時系列に並べ替えられ、上述のメトリック及びラベルに関してより完全なデータを有する記録リストを形成し得る。従って、いくつかの実施形態において、方法400は、同じメトリック及び同じラベルを有する正規化された記録を、当該正規化された記録のタイムスタンプに基づき、時系列に並べ替える段階を更に備え得る。
図10は、並べ替える段階の結果の説明的な例を示す。ソースAからの正規化された記録は、それぞれ、10:00、10:03、10:06、...等の一連のタイムスタンプを有する記録であり得る。ソースBからの正規化された記録は、それぞれ、10:01、10:04、10:07、...等の一連のタイムスタンプを有する記録であり得る。ソースCからの正規化された記録は、それぞれ、10:02、10:05、10:08、...等の一連のタイムスタンプを有する記録であり得る。並べ替える段階の後に、10:00、10:01、10:02、10:03、10:04、...等の一連のタイムスタンプを有する記録の記録リストが確立され得る。従って、同じメトリック及び同じラベルに関するデータの自動入力が達成され得る。並べ替える段階は、記憶する段階440の前、又は、検索する段階830又は検索する段階940の後に実行され得ることに留意されたい。記憶する段階440の前に並べ替える段階が実行される場合、同じキーを有するそれらの記録は、タイムラインに沿った方法で記憶され得る。並べ替える段階が検索する段階830又は940の後に実行される場合、一連の記録は、ユーザに対して時系列に出力され得る。
【0081】
上記を踏まえ、本開示の実施形態は、メトリック及びラベルの命名の統一を可能にし、更に、記録の重複排除、及び/又は、記録の効率的な記憶、検索及び/又は並べ替えを実現し得る。従って、本開示の実施形態は、TSDBにおける記録の効率的な管理を提供し、TSDBの動作性能を改善し、及び/又はTSDBの記憶領域の必要性を低減し得る。
【0082】
ここで
図11を参照すると、本開示の一実施形態に係る、TSDBにおける記録管理のためのシステム1100が示されている。システム1100は、1つ又は複数のプロセッサ1110、及びプロセッサ1110のうちの少なくとも1つに結合されたメモリ1120を備え得る。コンピュータプログラム命令のセットが、メモリ1120に記憶されている。プロセッサ1110のうちの少なくとも1つによって実行されると、コンピュータプログラム命令のセットは、TSDBにおける記録管理のための以下の一連の動作を実行する。時系列記録は、分散されたソースから取得され得る。記録は、記録のそれぞれのタイムスタンプに基づき、異なる記録グループに分類され得る。記録グループのそれぞれにおける記録は、正規化された記録に正規化され得る。正規化された記録は、TSDBに記憶され得る。
【0083】
いくつかの実施形態において、記録は、分散されたソースからプルされ得、及び/又は、記録は、分散されたソースからプッシュされ得る。
【0084】
いくつかの実施形態において、同じタイムスタンプを含む記録は、同じ記録グループにグループ化され得、同じ時間間隔でサンプリングされた記録は、同じ記録グループにグループ化され得、又は倍数関係を含む時間間隔でサンプリングされた記録は、同じ記録グループにグループ化され得る。
【0085】
いくつかの実施形態において、記録のメトリック及びラベルは、辞書に記憶されたメトリック間及びラベル間のマッピング関係に基づき、正規化されたメトリック及び正規化されたラベルにマッピングされ得る。メトリック及びラベルのマッピングに基づき、記録の値が適合され得る。
【0086】
いくつかの実施形態において、辞書に記憶されたマッピング関係は、事前定義されたマッピング関係を含む。
【0087】
いくつかの実施形態において、辞書に記憶されたマッピング関係は、記録の値の傾向に基づき、正規化する段階の前に更新され得る。
【0088】
いくつかの実施形態において、正規化された記録のそれぞれに関し、正規化された記録のキーは、汎用一意識別子(UUID)に変換され得、ここでキーは、正規化された記録のメトリック及びラベルを含む。正規化された記録のUUID、値、及びタイムスタンプは、TSDBに記憶され得る。
【0089】
いくつかの実施形態において、キー及びUUIDの間のマッピング関係は、TSDBに記憶され得る。
【0090】
いくつかの実施形態において、共有された記録と同じメトリック、同じラベル、及び同じ値を含む正規化された記録のうちの1つのみが記憶され得る。
【0091】
いくつかの実施形態において、要求されたタイムスタンプ、及び、要求されたメトリック及び要求されたラベルを含む要求されたキーは、時系列記録の要求から解析され得る。要求されたキーは、要求されたUUIDに変換され得る。要求された時系列記録は、要求されたUUID及び要求されたタイムスタンプに基づき、TSDBにおいて検索され得る。
【0092】
いくつかの実施形態において、要求されたタイムスタンプ、及び、要求されたメトリック及び要求されたラベルを含む要求されたキーは、時系列記録の要求から解析され得る。要求されたメトリック及び要求されたラベルは、辞書に記憶されたメトリック間及びラベル間のマッピング関係に基づき、正規化された要求されたメトリック及び正規化された要求されたラベルにマッピングされ得る。正規化された要求されたメトリック及び正規化された要求されたラベルは、要求されたUUIDに変換され得る。要求された時系列記録は、要求されたUUID及び要求されたタイムスタンプに基づき、TSDBにおいて検索され得る。
【0093】
いくつかの実施形態において、同じメトリック及び同じラベルを有する正規化された記録は、当該正規化された記録のタイムスタンプに基づき、時系列に並べ替えられ得る。
【0094】
方法400のプロセスに関連する上記の説明は、システム1000に適用され得、詳細は簡潔性のために本明細書において省略される。
【0095】
本開示の実施形態に係る、TSDBにおける記録管理のためのシステムによって達成される処理は、
図1のコンピュータシステム/サーバ12によって実装され得ることに留意されたい。
【0096】
本開示の別の実施形態によれば、TSDBにおける記録管理のためのコンピュータプログラム製品が開示される。コンピュータプログラム製品は、それにより具現化されるプログラム命令を含むコンピュータ可読記憶媒体を有し、プログラム命令は、プロセッサによって実行可能である。実行されると、プログラム命令は、プロセッサに、上述の手順のうちの1つ又は複数を実行させる。
【0097】
また、本明細書において使用される「第1」及び「第2」などの用語は、ある要素と別の要素を、対応する要素の順序及び/又は重要度を示すことなく区別することのみを目的としていることに留意されたい。
【0098】
図との関連において説明された動作の順序は、単なる例示であり、本開示を限定するものとして解釈されることはできない。必要に応じて、動作の順序は変更され得る。加えて、1つ又は複数の動作が省略され得、より多くの動作が追加され得る。
【0099】
本開示の様々な態様は、説明文、フローチャート、コンピュータシステムのブロック図、及び/又はコンピュータプログラム製品(CPP)の実施形態に含まれる機械ロジックのブロック図によって説明される。任意のフローチャートに関し、関係する技術に応じて、操作は、所与のフローチャートにおいて示されたものとは異なる順序で実行され得る。例えば、再び関係する技術に応じて、連続するフローチャート図において示された2つの操作は、逆の順序で、単一の統合された段階として、同時に、又は少なくとも部分的に時間が重複する方法で実行されてよい。
【0100】
コンピュータプログラム製品の実施形態(「CPP実施形態」又は「CPP」)は、本開示において、所与のCPP請求項において指定されたコンピュータ操作を実行するための命令及び/又はデータに対応する機械可読コードを集合的に含む、1つ、又は複数の記憶デバイスのセットに集合的に含まれる、1つ、又は複数の記憶媒体(「媒体」とも称される)の任意のセットについて説明するために使用される用語である。「記憶デバイス」は、コンピュータプロセッサによる使用のために命令を保持及び記憶し得る任意の有形デバイスである。コンピュータ可読記憶媒体は、電子記憶媒体、磁気記憶媒体、光学記憶媒体、電磁記憶媒体、半導体記憶媒体、機械記憶媒体、又は上述したものの任意の好適な組み合わせであってよいが、これらに限定されない。これらの媒体を含むいくつかの既知のタイプの記憶デバイスは、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、(パンチカード又はディスクの主要面に形成されたピット/ランド等の)機械的に符号化されたデバイス、又は上述したものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、当該用語が本開示において使用される場合、電波又は他の自由に伝播する電磁波、導波路を通じて伝播する電磁波、光ファイバケーブルを通過する光パルス、ワイヤを通じて伝達される電気信号、及び/又は他の伝送媒体などの一時的な信号それ自体の形態のストレージとして解釈されるべきではない。当業者であれば理解する通り、データは、アクセス中、デフラグメンテーション中、又はガベージコレクション中など、記憶デバイスの通常の動作中のいくつかの不定期な時点において、通常移動されるが、データは、記憶されている間において一時的ではないため、上記をもって、記憶デバイスが一時的なものとされることはない。
【0101】
本開示の態様は、本開示の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して本明細書で説明される。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装され得ることが理解されるであろう。
【0102】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサ、又は他のプログラマブルデータ処理装置に提供されて機械を生成してよく、これにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を作成する。また、これらのコンピュータ可読プログラム命令は、内部に記憶された命令を有するコンピュータ可読記憶媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を有するように、コンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスが特定の方法で機能するように指示し得るコンピュータ可読記憶媒体に記憶され得る。
【0103】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、又は他のデバイス上で一連の動作段階を実行させてコンピュータ実装プロセスを生成するように、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上にロードされ得、これにより、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令は、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する。
【0104】
図におけるフローチャート及びブロック図は、本開示の様々な実施形態に係るシステム、方法及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、指定される論理機能を実装する1つ又は複数の実行可能命令を含む命令のモジュール、セグメント、又は部分を表し得る。いくつかの代替的な実装において、ブロックにおいて記載された機能は、図において記載された順序とは異なる順序で行われてよい。例えば、連続して示される2つのブロックは、実際には、1つの段階として実現され、部分的又は全体的に時間的に重複する方法で、同時に、又は実質的に同時に実行されてよく、場合によっては、これらのブロックは、関連する機能に応じて逆の順序で実行されてよい。ブロック図及び/又はフローチャート図の各ブロック、及び、ブロック図及び/又はフローチャート図におけるブロックの組み合わせが、指定された機能又は動作を実行する、又は専用ハードウェア及びコンピュータ命令の組み合わせを実行する、専用目的ハードウェアベースシステムにより実装され得ることにも留意されたい。
【0105】
本開示の様々な実施形態の説明は、例示の目的で提示されており、網羅的であること、又は、開示された実施形態に限定されることは意図されていない。説明された実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が、当業者には明らかであろう。本明細書において使用される専門用語は、実施形態の原理、市場で見られる技術の実際の適用又はそれに対する技術的改善を最適に説明し、又は、本明細書において開示される実施形態を他の当業者が理解することを可能にするように選択された。