JP2018522336A - Data store for aggregated metrics measurements - Google Patents

Data store for aggregated metrics measurements Download PDF

Info

Publication number
JP2018522336A
JP2018522336A JP2017562281A JP2017562281A JP2018522336A JP 2018522336 A JP2018522336 A JP 2018522336A JP 2017562281 A JP2017562281 A JP 2017562281A JP 2017562281 A JP2017562281 A JP 2017562281A JP 2018522336 A JP2018522336 A JP 2018522336A
Authority
JP
Japan
Prior art keywords
measurements
measurement
metric
aggregation
computing resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017562281A
Other languages
Japanese (ja)
Other versions
JP6607963B2 (en
Inventor
テイラー、ゲイリー
デネヒー、ブライアン
アレクサンドル ローランド ロドリゲス、セバスチャン
アレクサンドル ローランド ロドリゲス、セバスチャン
デルガド マンガス、ジュリオ
デルガド マンガス、ジュリオ
Original Assignee
アマゾン・テクノロジーズ、インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/752,752 external-priority patent/US9880919B2/en
Priority claimed from US14/752,756 external-priority patent/US9910755B2/en
Priority claimed from US14/752,760 external-priority patent/US9880880B2/en
Priority claimed from US14/752,759 external-priority patent/US9882830B2/en
Priority claimed from US14/752,754 external-priority patent/US9882982B2/en
Application filed by アマゾン・テクノロジーズ、インコーポレイテッド filed Critical アマゾン・テクノロジーズ、インコーポレイテッド
Publication of JP2018522336A publication Critical patent/JP2018522336A/en
Application granted granted Critical
Publication of JP6607963B2 publication Critical patent/JP6607963B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3082Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4016Transaction verification involving fraud or risk level assessment in transaction processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

コンピューティングリソースモニタリングサービスは、リクエストを受信して、コンピューティングリソースに関連するメトリクスの測定値を保存する。リクエストは、測定値自体及び測定値の属性を指定する測定値に対するメタデータを含む。メタデータに少なくとも部分的に基づいて、コンピューティングリソースモニタリングサービスは、完全修飾メトリクス識別子を生成し、識別子を用いて測定値の配置のための論理パーティションを選択する。コンピューティングリソースモニタリングサービスは、論理パーティションから、測定値を1つまたは複数のメモリ内データストアを備える集計サブシステムに送信する。コンピューティングリソースモニタリングサービスは、測定値を、集計サブシステム内のメモリ内データストアに保存する。  The computing resource monitoring service receives the request and stores a metric measurement associated with the computing resource. The request includes metadata for the measurement value that specifies the measurement value itself and the attribute of the measurement value. Based at least in part on the metadata, the computing resource monitoring service generates a fully qualified metric identifier and uses the identifier to select a logical partition for placement of measurements. The computing resource monitoring service sends measurements from the logical partition to an aggregation subsystem comprising one or more in-memory data stores. The computing resource monitoring service stores measurements in an in-memory data store within the aggregation subsystem.

Description

関連出願の相互参照
本出願は、同時係属中の2016年6月26日に出願された米国特許出願第14/752,754号「DATASTORE FOR AGGREGATED MEASUREMENTS FOR METRICS」(代理人整理番号0097749−515US0)、2016年6月26日に出願された米国特許出願第14/752,752号「AGGREGATION OF METRICS DATA WITH FINE GRANULARITY」(代理人整理番号0097749−492US0)、2016年6月26日に出願された米国特許出願第14/752,759号「ARCHITECTURE FOR METRICS AGGREGATION WITHOUT SERVICE PARTITIONING」(代理人整理番号0097749−547US0)、2016年6月26日に出願された米国特許出願第14/752,760号「AUTOMATIC SCALING OF COMPUTING RESOURCES USING AGGREGATED METRICS」(代理人整理番号0097749−548US0)及び2016年6月26日に出願された米国特許出願第14/752,756号「RETRIEVAL OF AUTHORITATIVE MEASUREMENT DATA FROM IN−MEMORY DATASTORES」(代理人整理番号0097749−549US0)の全開示をあらゆる目的で参照によって包含する。
CROSS REFERENCE TO RELATED APPLICATIONS This application is a co-pending US patent application Ser. No. 14 / 752,754 filed Jun. 26, 2016 “DATASTORE FOR AGGREGATED MEASUREMENTS FOR METRICS” (Attorney Docket No. 0097749-515US0). No. 14 / 752,752 “AGGREGATION OF METRICS DATA WITH FINA GRANULITY” (Attorney Docket No. 0097749-492US0), filed on June 26, 2016, filed June 26, 2016 US Patent Application No. 14 / 752,759 “ARCHITECTURE FOR METRICS AGGREGATION WITHOUT SERVICE SERVICEIONING” No. 0097749-547US0), U.S. Patent Application No. 14 / 752,760 filed June 26, 2016 "AUTOMATIC SCALING OF COMPUTING RESOURCES USING AGGREGATED METRICS" (Attorney Docket Number 0097749-548US0) and June 2016 The entire disclosure of US patent application Ser. No. 14 / 752,756, filed on 26th, “RETRIEVAL OF AUTHORITATIVE MEASUREMENT DATA FROM IN-MEMORY DATATORES” (Attorney Docket No. 0097749-549US0) is incorporated by reference for all purposes.

コンピューティングリソースサービスプロバイダのカスタマー及びアドミニストレータならびにコンピューティングリソースサービスプロバイダのコンピューティングリソースの他のユーザは、モニタリングサービスを用いて、自らのコンピューティングリソースの運用方法を測定し、診断し、改善することがよくある。例えば、これらのモニタリングサービスを通じて、カスタマー、アドミニストレータ及び他のユーザは、自らのコンピューティングリソースに対するデータを取得し、このデータを用いて、自らのコンピューティングリソースが適切に機能しているかどうかを判定することができる。自らのコンピューティングリソースが適切に機能していない場合、データを用いて、存在し得る問題を識別し、カスタマー、アドミニストレータ及び他のユーザによるトラブルシュートを可能にすることができる。しかし、負担のかかる運用イベントの際、時間が重要となることが多い。分散型システムでのコンピューティングリソースのモニタリングは、非常に複雑で、分散型システムのサイズとともにその複雑性は増していく。結果的に、コンピューティングリソースをモニタリングする従来技術では、問題の兆候を示すデータを取得してからそのデータの消費が利用可能となるまでに、著しい待ち時間が発生することが多い。一部のカスタマー、アドミニストレータ及び他のユーザは、自らのコンピューティングリソースを追跡するデータを迅速に取得し、可能な限り早く問題に対処することを必要とし得る。   Computing resource service provider customers and administrators and other users of computing resource service provider computing resources can use monitoring services to measure, diagnose, and improve how their computing resources operate. Often. For example, through these monitoring services, customers, administrators, and other users obtain data for their computing resources and use this data to determine whether their computing resources are functioning properly. be able to. If their computing resources are not functioning properly, the data can be used to identify problems that may exist and enable troubleshooting by customers, administrators, and other users. However, time is often important during expensive operational events. Monitoring computing resources in a distributed system is very complex and increases with the size of the distributed system. As a result, in the prior art for monitoring computing resources, there is often a significant latency between obtaining data indicating a sign of a problem and consuming that data. Some customers, administrators, and other users may need to quickly obtain data tracking their computing resources and address problems as soon as possible.

本開示による様々な実施形態を、図面を参照しながら説明する。   Various embodiments according to the present disclosure will be described with reference to the drawings.

様々な実施形態を実施することができる環境の具体例を示す図である。It is a figure which shows the specific example of the environment which can implement various embodiment. 少なくとも一実施形態による、コンピューティングリソースモニタリングサービスのフロントエンドサーバが、1つまたは複数のアプリケーションプログラミングインタフェース呼び出しを処理して、測定値を保存し、サービスで測定値を検索する環境の具体例を示す図である。FIG. 4 illustrates an example environment in which a front-end server of a computing resource monitoring service processes one or more application programming interface calls to store measurements and retrieve measurements in the service according to at least one embodiment. FIG. 少なくとも一実施形態による、コンピューティングリソースモニタリングサービスの分割サブシステムが、測定値を様々な論理パーティションに分割し、各論理パーティションの測定値を集計サブシステムに配信する環境の具体例を示す図である。FIG. 4 is a diagram illustrating a specific example of an environment in which a partitioning subsystem of a computing resource monitoring service divides measurements into various logical partitions and distributes the measured values of each logical partition to the aggregation subsystem according to at least one embodiment. . 少なくとも一実施形態による、集計サブシステムが測定値の集計を行い、1つまたは複数のデータストア内に保存された測定値に対するリードアクセスを提供する環境の具体例を示す図である。FIG. 4 illustrates an example environment in which an aggregation subsystem aggregates measurements and provides read access to measurements stored in one or more data stores, according to at least one embodiment. 少なくとも一実施形態による、カスタマーコンピュータシステムが、測定値を様々な論理パーティションに分割し、各論理パーティションの測定値をコンピューティングリソースモニタリングサービスの1つまたは複数の集計サブシステムに配信する環境の具体例を示す図である。An example environment in which a customer computer system divides measurements into various logical partitions and distributes the measurements for each logical partition to one or more aggregation subsystems of a computing resource monitoring service, according to at least one embodiment. FIG. 少なくとも一実施形態による、メタデータがメトリクスの測定値とともに提供されて、そのメトリクスの測定値の今後の保存を、さらなるメタデータの送信の必要なしに可能とする環境の具体例を示す図である。FIG. 4 illustrates an example environment in which metadata is provided with a metric measurement, and allows future storage of the metric measurement without the need for further metadata transmission, according to at least one embodiment. . 少なくとも一実施形態による、メトリクスの測定値の採集を用いて、1つまたは複数のリソースの自動スケーリングが行われるかどうかを判定する環境の具体例を示す図である。FIG. 4 illustrates an example environment for determining whether automatic scaling of one or more resources is performed using collection of metrics measurements, according to at least one embodiment. 少なくとも一実施形態による、メトリクスの測定値を、1つまたは複数の集計サブシステムに配信するために分割するプロセスの具体例を示す図である。FIG. 6 illustrates an example process for partitioning metrics measurements for distribution to one or more aggregation subsystems, according to at least one embodiment. 少なくとも一実施形態による、1つまたは複数の分割サブシステムからの測定値を、コンピューティングリソースモニタリングサービスの1つまたは複数のデータストアからの測定値と集計するプロセスの具体例を示す図である。FIG. 4 illustrates an example process for aggregating measurements from one or more partitioned subsystems with measurements from one or more data stores of a computing resource monitoring service, according to at least one embodiment. 少なくとも一実施形態による、GETアプリケーションプログラミングインタフェース呼び出しに応答して、1つまたは複数の測定値を1つまたは複数の集計データストアから検索するプロセスの具体例を示す図である。FIG. 6 illustrates an example process for retrieving one or more measurements from one or more aggregate data stores in response to a GET application programming interface call in accordance with at least one embodiment. 少なくとも一実施形態による、コンピューティングリソースモニタリングサービスに送信される測定値を、測定値の発行のために分割するプロセスの具体例を示す図である。FIG. 4 illustrates an example process for dividing a measurement sent to a computing resource monitoring service for issue of the measurement according to at least one embodiment. 少なくとも一実施形態による、メタデータハッシュに少なくとも部分的に基づいて、1つまたは複数の集計データストアに測定値を保存するプロセスの具体例を示す図である。FIG. 6 illustrates an example process for storing measurements in one or more aggregate data stores based at least in part on a metadata hash, according to at least one embodiment. 少なくとも一実施形態による、測定値を取得するリクエスト内に含まれるメタデータに少なくとも部分的に基づいて、測定値を1つまたは複数の集計データストアから検索するプロセスの具体例を示す図である。FIG. 6 illustrates an example process for retrieving a measurement value from one or more aggregate data stores based at least in part on metadata included in a request to obtain a measurement value, according to at least one embodiment. 様々な実施形態を実施することができる環境の具体例を示す図である。It is a figure which shows the specific example of the environment which can implement various embodiment.

以下の説明では、様々な実施形態を説明する。説明するという目的のために、実施形態の完全な理解を提供すべく、特定の構成及び詳細を記載している。しかしまた、実施形態は特定の詳細なしに実施し得ることが、当業者には明らかであろう。また、周知の特徴は、記述されている実施形態を不明瞭にしないために省略または簡略化し得る。   In the following description, various embodiments will be described. For purposes of explanation, specific configurations and details are set forth in order to provide a thorough understanding of the embodiments. However, it will also be apparent to one skilled in the art that the embodiments may be practiced without the specific details. In other instances, well-known features may be omitted or simplified in order not to obscure the described embodiments.

本明細書中で記載したかつ示唆した技術は、サービスプロバイダによって指定された保持期間の間、メトリクスの測定値を集計し、集計された測定値をメモリに保存するように構成されたコンピューティングリソースモニタリングサービスに関する。コンピューティングリソースモニタリングサービスは、フロントエンドサーバを含み得、このフロントエンドサーバは、コンピューティングリソースサービスプロバイダのカスタマー、コンピューティングリソースサービスプロバイダの様々な他のサービス及びカスタマーに様々なサービスを通して利用可能になされたコンピューティングリソースを含む各種の様々なソースから測定値を取得するように構成され得る。このフロントエンドサーバは、これらの測定値を、コンピューティングリソースモニタリングサービスの様々なコンポーネントが利用することができるバイナリシリアライゼーションフォーマットに変換し得る。測定値の変換が完了すると、フロントエンドサーバは、これらの測定値を様々な分割サブシステムに発行して、測定値ごとのまたはメトリクスごとの完全修飾メトリクス識別子(FQMI)及び測定値のタイムスタンプに基づいて、測定値を様々な集計データストアに割り振るために分割する。   The technology described and suggested herein is a computing resource configured to aggregate metrics measurements and store the aggregated measurements in memory for a retention period specified by a service provider. Regarding monitoring services. The computing resource monitoring service may include a front-end server that is made available to the computing resource service provider customer, various other services of the computing resource service provider, and the customer through various services. May be configured to obtain measurements from a variety of different sources, including different computing resources. The front end server may convert these measurements into a binary serialization format that can be utilized by various components of the computing resource monitoring service. Once the measurement conversion is complete, the front-end server issues these measurements to the various splitting subsystems for a fully qualified metric identifier (FQMI) and a measurement timestamp for each measurement or metric. Based on this, the measured values are split for allocation to various aggregate data stores.

分割サブシステムは、FQMIに基づいて、測定値を様々なキューに保存し得る。各キューは、様々な集計データストアに測定値を保存するために、それぞれの集計サブシステムに関連付けられ得る。この集計データストアは、コンピューティングリソースモニタリングサービスに対する、測定値を検索するアプリケーションプログラミングインタフェース(API)呼び出しをサポートするのに利用される。分割サブシステムは、さらに、各キュー内の測定値を、測定値ごとのタイムスタンプに基づいて分割し得る。このことによって、分割サブシステムが、集計サブシステムへの測定値の配信にタイムスタンプに基づいて優先順位を付け、最新の測定値を第1に配信することが可能になる。さらに、分割サブシステムは、測定値を、このデータのタイムスタンプが最も古い保持期間よりも以前である場合、様々なキューからパージし得る。未来のタイムスタンプを有する測定値(例えば、最新の保持期間を過ぎている)の場合、分割サブシステムは、これらの測定値を、別個の未分割のキューの待ち行列に入れ得る。このキューに、測定値は、この測定値のタイムスタンプが後の時点で現在の保持期間によってカバーされるまで残るであろう。保持期間が更新されると、この保持期間内のタイムスタンプを有する測定値は、別個の未分割のキューから転送され、処理され得る。   The split subsystem may store measurements in various queues based on FQMI. Each queue may be associated with a respective aggregation subsystem to store measurements in various aggregation data stores. This aggregate data store is utilized to support application programming interface (API) calls to retrieve measurements for the computing resource monitoring service. The split subsystem may further split the measurements in each queue based on the time stamp for each measurement. This allows the split subsystem to prioritize the distribution of measurement values to the aggregation subsystem based on the time stamp and distribute the latest measurement values first. Furthermore, the splitting subsystem may purge measurements from various queues if the timestamp of this data is earlier than the oldest retention period. For measurements with future timestamps (e.g., past the latest retention period), the split subsystem may place these measurements in a separate unsplit queue. In this queue, the measurement will remain until the timestamp of this measurement is covered by the current retention period at a later time. When the retention period is updated, measurements with timestamps within this retention period can be transferred from a separate undivided queue and processed.

集計サブシステムは、保持期間において、測定値を分割サブシステムの様々なキューから取得し、これらの測定値を集計し得る。集計サブシステムが様々な分割サブシステムから測定値を取得するとき、集計サブシステムは、既存の測定値を取得し、既存の測定値のいずれかが最も古い保持期間よりも以前の期間に対応しているかどうかを判断し得る。対応している場合、集計サブシステムは、これらの既存の測定値をパージし得る。集計サブシステムは、分割サブシステムから取得した測定値を、集計サブシステムの集計データストアによって非同期処理を行うために、様々なファイルベースのキュー内に保存し得る。新規に取得された測定値と既存の測定値のこの集計は、既存の測定値及び新規に取得された測定値のデシリアライゼーション及び新規に取得された測定値と残っている測定値のシリアライズされたフォーマットに向けての集計を通して行われ得る。次いで、シリアライズされたデータは、集計データストア内に保存され得る。   The aggregation subsystem may obtain measurements from various queues of the split subsystem and aggregate these measurements during the retention period. When the aggregation subsystem retrieves measurements from the various split subsystems, the aggregation subsystem retrieves existing measurements and any of the existing measurements corresponds to a period before the oldest retention period. You can judge whether or not. If so, the aggregation subsystem may purge these existing measurements. The aggregation subsystem may store measurements obtained from the split subsystem in various file-based queues for asynchronous processing by the aggregation subsystem's aggregation data store. This aggregation of newly acquired measurements and existing measurements is a deserialization of existing and newly acquired measurements and serialized newly acquired and remaining measurements. This can be done through aggregation for the format. The serialized data can then be stored in an aggregate data store.

コンピューティングリソースサービスプロバイダのカスタマーが、コンピューティングリソースモニタリングサービスから測定値を検索する(例えば、GETなど)API呼び出しをフロントエンドサーバに送ると、フロントエンドサーバは、集計サブシステムに、測定値を取得するリクエストを送信し得る。このことによって、様々な集計サブシステムはそれぞれ、メトリクスマッピングレジストリにアクセスして、リクエストされた測定値がどこに保存されているかを判定し得る。次いで、集計サブシステムは、それぞれの集計データストアにアクセスして、リクエストされた測定値を取得し、これらの測定値をメトリクス統合エンジンに提供し得る。このメトリクス統合エンジンは、集計サブシステムの測定値をコンパイルし、これらの測定値をフロントエンドサーバに提供し得る。フロントエンドサーバは、コンパイルされた測定値をメトリクス統合エンジンから提供することによって、カスタマーのリクエストを満たし得る。   When a customer of a computing resource service provider sends an API call (e.g., GET) from a computing resource monitoring service to a front-end server, the front-end server retrieves the measurement to the aggregation subsystem. You can send a request to This allows each of the various aggregation subsystems to access the metric mapping registry to determine where the requested measurement is stored. The aggregation subsystem may then access the respective aggregation data store to obtain the requested measurements and provide these measurements to the metrics integration engine. The metrics integration engine may compile the aggregate subsystem measurements and provide these measurements to the front-end server. The front-end server may satisfy the customer's request by providing compiled measurements from the metrics integration engine.

このようにして、コンピューティングリソースモニタリングサービスは、各種ソースから様々なメトリクスの測定値を採集し、リアルタイム分析を行い、カスタマー、アドミニストレータ及び他のエンティティに測定値を提供して、内在するコンピューティングリソースの問題への迅速な応答を可能にし、短時間でのメトリクスの評価を可能にし得る。さらに、本明細書中に記載されたかつ示唆された技術は、さらなる技術的な利点を容易にする。例えば、コンピューティングリソースモニタリングサービスによって採集された測定値は、様々な分割サブシステムへ割り振るために分けられ論理パーティション内に配置されるので、分割サブシステムに起きるいずれの故障も、コンピューティングリソースモニタリングサービスによる全体的な測定値の集計にもたらす影響を最小にし得る。このことにより、コンピューティングリソースサービスプロバイダのカスタマーが、重大なデータ損失の危険性を最小にして、保持期間において迅速に測定値を保存し得ることが確実になり得る。   In this way, the computing resource monitoring service collects measurements of various metrics from various sources, performs real-time analysis, and provides measurements to customers, administrators, and other entities to provide underlying computing resources. May be able to respond quickly to problems and to evaluate metrics in a short time. Furthermore, the techniques described and suggested herein facilitate further technical advantages. For example, measurements collected by the computing resource monitoring service are divided and allocated in logical partitions for allocation to the various partitioned subsystems, so that any failure that occurs in the partitioned subsystem is Can minimize the impact on the aggregation of overall measurements. This may ensure that the customer of the computing resource service provider can store measurements quickly during the retention period with minimal risk of data loss.

図1は、様々な実施形態を実施することができる環境100の具体例を示す。環境100では、コンピューティングリソースサービスプロバイダの1つまたは複数のカスタマー102(例えば、個人、組織、自動工程、コンピューティングリソースエージェントなど)は、コンピューティングリソースモニタリングサービス104に、コンピューティングリソースに対する特定のメトリクスの測定値を保存するリクエストを送り得る。測定値を保存するリクエストは、PUT呼び出しなどのAPI呼び出しの形式でコンピューティングリソースモニタリングサービス104に提供され得る。一実施形態では、測定値を保存する初期リクエストは、コンピューティングリソースモニタリングサービス104に提供されている測定値を記述するのに用いることができるメタデータを含む。例えば、メタデータは、データを生成した発信元コンピューティングリソースの名前、発信元コンピューティングリソースが属するオートスケーリンググループ、発信元コンピューティングリソースに対する仮想マシンイメージ識別子などを指定し得る。測定値を保存するAPI呼び出しを通して測定値及びメタデータを受信すると、コンピューティングリソースモニタリングサービス104は、メタデータハッシュを生成し得、このハッシュは、測定値を保存の際インデックス化するのに用いられ得る。測定値は、可能な値のスケールの数値、ブール値または可能な状態のセットの状態の英数字もしくは他のインジケータであり得る。測定値は、さらに、仮想マシンインスタンス、カスタマーコンピュータシステム、オブジェクトベースのデータストア及び/または他のコンピューティングリソースなどの、関連するコンピューティングリソースの運用の少なくとも一態様を表示するものとなり得る。例えば、測定値は、経時的なプロセッサ使用率、経時的なメモリ使用率、一定期間にコンピューティングリソース内で検出されたエラーのカウントなどを含み得る。   FIG. 1 illustrates an example environment 100 in which various embodiments may be implemented. In the environment 100, one or more customers 102 (eg, individuals, organizations, automated processes, computing resource agents, etc.) of a computing resource service provider may cause the computing resource monitoring service 104 to send specific metrics for the computing resource. You can send a request to save the measurements. The request to save the measurement value may be provided to the computing resource monitoring service 104 in the form of an API call such as a PUT call. In one embodiment, the initial request to save the measurement includes metadata that can be used to describe the measurement provided to the computing resource monitoring service 104. For example, the metadata may specify the name of the source computing resource that generated the data, the autoscaling group to which the source computing resource belongs, the virtual machine image identifier for the source computing resource, and the like. Upon receipt of the measurement and metadata through an API call that stores the measurement, the computing resource monitoring service 104 may generate a metadata hash that is used to index the measurement upon storage. obtain. The measured value may be a numeric value on a scale of possible values, a Boolean value or an alphanumeric or other indicator of the state of a set of possible states. The measurements may further display at least one aspect of the operation of related computing resources, such as virtual machine instances, customer computer systems, object-based data stores, and / or other computing resources. For example, measurements may include processor usage over time, memory usage over time, a count of errors detected in computing resources over a period of time, and the like.

一実施形態では、コンピューティングリソースモニタリングサービス104は、コンピューティングリソースモニタリングサービス104の各データセンタ106内に、1つまたは複数の分割サブシステム108及び1つまたは複数の集計サブシステム110を、測定値の保存のために含む。各データセンタ106は、コンピューティングリソースモニタリングサービス104のコンピュータシステム及びコンピューティングリソースサービスプロバイダのサービスのための他のコンピュータシステムが配置され得る物理的な位置に対応し得る。コンピューティングリソースモニタリングサービス104が測定値をカスタマー102から取得すると、コンピューティングリソースモニタリングサービス104は、提供されたメタデータを用いて、データを生成したコンピューティングリソースを識別し、このコンピューティングリソースが配置されているデータセンタ106を判定し得る。この判定に少なくとも部分的に基づいて、コンピューティングリソースモニタリングサービス104は、データの保存のために、対応するデータセンタ106を選択し得る。一部の実施形態では、コンピューティングリソースモニタリングサービス104は、測定値を、複数のデータセンタ106のサブセットに保存するために複製して、測定値に対して冗長性を提供する。このことによって、コンピューティングリソースモニタリングサービス104が、複数のデータセンタ106のサブセットがリクエストに応答して整合する測定値の回答を提供できない場合、特定の測定値を選択するために、1つまたは複数の競合解消ルールを生成することが可能になり得る。例えば、コンピューティングリソースモニタリングサービス104は、クォーラムを必要とし得る。クォーラムにおいて、コンピューティングリソースモニタリングサービス104は、同一の測定値を提供するデータセンタ106の数が所定のデータセンタ106の数以上である限り、大多数のデータセンタ106によって提供されている測定値を選択し得る。   In one embodiment, the computing resource monitoring service 104 includes one or more split subsystems 108 and one or more aggregation subsystems 110 within each data center 106 of the computing resource monitoring service 104 that measure the measured values. Including for preservation. Each data center 106 may correspond to a physical location where the computer system of the computing resource monitoring service 104 and other computer systems for the services of the computing resource service provider may be located. When the computing resource monitoring service 104 obtains measurements from the customer 102, the computing resource monitoring service 104 uses the provided metadata to identify the computing resource that generated the data, and the computing resource is located. The data center 106 being served can be determined. Based at least in part on this determination, the computing resource monitoring service 104 may select the corresponding data center 106 for data storage. In some embodiments, the computing resource monitoring service 104 replicates the measurements for storage in a subset of the plurality of data centers 106 to provide redundancy for the measurements. This allows the computing resource monitoring service 104 to provide one or more measurements to select a particular measurement if a subset of multiple data centers 106 cannot provide a consistent measurement answer in response to the request. It may be possible to generate conflict resolution rules. For example, the computing resource monitoring service 104 may require quorum. In the quorum, the computing resource monitoring service 104 uses the measurements provided by the majority of data centers 106 as long as the number of data centers 106 providing the same measurement is equal to or greater than the number of predetermined data centers 106. You can choose.

コンピューティングリソースモニタリングサービス104に提供された測定値に対するメタデータは、測定値に対する特定のメトリクスを固有に識別し得る。例えば、メタデータは、カスタマーのアカウント番号、名前空間(例えば、コンピューティングリソースに対する関連サービス)、測定値のディメンション(例えば、キー/値のペア)、測定値自体の名前などの組み合わせによって、測定値を固有に識別し得る。一実施形態では、コンピューティングリソースモニタリングサービス104がカスタマー102から測定値及びメタデータを受信すると、コンピューティングリソースモニタリングサービス104は、ハッシュ関数を用いて、メタデータハッシュを生成する。このハッシュは、保存される測定値に対するFQMIとして用いることができる。さらに、コンピューティングリソースモニタリングサービス104は、バイナリシリアライゼーションフォーマットを用いて、保存される測定値を圧縮し得る。このバイナリシリアライゼーションフォーマットで、シリアライズされた測定値は、メタデータをハッシュすることによって生成されたFQMI、データのタイムスタンプ、データに対する測定の単位及び測定値自体を含み得る。代替実施形態では、カスタマー102は、カスタマーコンピュータシステムまたは他のコンピューティングリソースを用いて、FQMIを、測定値に対するメタデータに少なくとも部分的に基づいて計算する。このことによって、カスタマー102は、コンピューティングリソースモニタリングサービス104がFQMI自体を生成する必要なしに、測定値に、測定値に対するFQMIを設けることが可能になり得る。   Metadata for measurements provided to the computing resource monitoring service 104 may uniquely identify specific metrics for the measurements. For example, metadata can be measured by a combination of customer account number, namespace (eg, related services for computing resources), measurement dimensions (eg, key / value pairs), name of the measurement itself, etc. Can be uniquely identified. In one embodiment, when the computing resource monitoring service 104 receives measurements and metadata from the customer 102, the computing resource monitoring service 104 uses a hash function to generate a metadata hash. This hash can be used as an FQMI for stored measurements. Further, the computing resource monitoring service 104 may compress stored measurements using a binary serialization format. In this binary serialization format, the serialized measurement value may include the FQMI generated by hashing the metadata, the data time stamp, the unit of measurement for the data, and the measurement value itself. In an alternative embodiment, customer 102 uses a customer computer system or other computing resource to calculate FQMI based at least in part on metadata for the measurements. This may allow the customer 102 to provide the measurement with an FQMI for the measurement without requiring the computing resource monitoring service 104 to generate the FQMI itself.

一実施形態では、コンピューティングリソースモニタリングサービス104がメタデータをハッシュして、保存される測定値に対するFQMIを生成すると、カスタマー102は、メタデータが期限切れしていない限り、または、カスタマー102がコンピューティングリソースモニタリングサービス104との間に新規のセッションを開始していない限り、特定のメトリクスの測定値の今後の送信のためにメタデータを繰り返す必要がもはやなくなる。例えば、カスタマー102がさらなる測定値をコンピューティングリソースモニタリングサービス104に供給するとき、カスタマー102は、メタデータの代わりに、同一のメトリクスに対応する測定値に対するFQMIを提供し得る。コンピューティングリソースモニタリングサービス104は、様々な測定値をコンピューティングリソースモニタリングサービス104のデータストア内に保存することを見越して、測定値及びFQMIをシリアライズし得る。コンピューティングリソースモニタリングサービス104は、測定値に対するメタデータを含む第1の測定値を保存するカスタマーのリクエストに応答して、カスタマー102に、測定値に対するFQMIを提供し得る。コンピューティングリソースモニタリングサービス104が、カスタマー102によって提供されたメタデータに少なくとも部分的に基づいてFQMIを生成すると、コンピューティングリソースモニタリングサービス104は、FQMIをカスタマー102にPUTリクエスト及びGETリクエストを含む今後の使用のために送信し得る。   In one embodiment, when the computing resource monitoring service 104 hashes the metadata and generates an FQMI for the stored measurements, the customer 102 may compute the customer 102 as long as the metadata has not expired or Unless a new session is initiated with the resource monitoring service 104, it is no longer necessary to repeat the metadata for future transmission of specific metric measurements. For example, when customer 102 provides additional measurements to computing resource monitoring service 104, customer 102 may provide an FQMI for measurements corresponding to the same metric instead of metadata. The computing resource monitoring service 104 may serialize the measurements and FQMI in anticipation of storing various measurements in the data store of the computing resource monitoring service 104. The computing resource monitoring service 104 may provide the customer 102 with an FQMI for the measurements in response to a customer request to store a first measurement that includes metadata for the measurements. Once the computing resource monitoring service 104 generates an FQMI based at least in part on the metadata provided by the customer 102, the computing resource monitoring service 104 may send the FQMI to the customer 102 in the future including PUT requests and GET requests. May be sent for use.

測定値を保存する(例えば、メトリクスの観察)ためにコンピューティングリソースモニタリングサービス104に対してなされ得るAPI呼び出しは、さらに、メトリクスの特定の時系列において提供されたデータは時系列において信頼すべきものであることを指定するのに用いられ得る1つまたは複数のパラメータを含み得る。例えば、メトリクスの測定値は特定の保持期間において集計されるので、カスタマー102は、時系列に対して、提供された1つまたは複数の測定値が時系列において信頼すべきものであると指定し、コンピューティングリソースモニタリングサービス104が、時系列において提供された測定値は実際のところ信頼すべき安定したものであることを、測定値をリクエストしているエンティティに示すようにし得る。一実施形態では、コンピューティングリソースモニタリングサービス104が、提供された測定値が時系列において信頼すべきものであることを指定するのに使用可能な1つまたは複数のパラメータを含むAPI呼び出しを受信すると、コンピューティングリソースモニタリングサービス104は、受信した測定値が時系列における他の測定値と集計され保存されるとすぐに時系列における様々な測定値を利用可能にするであろう。この測定値及び時系列における他の測定値は、カスタマー102または他のエンティティに利用可能となり得、コンピューティングリソースモニタリングサービス104が、これらの測定値が時系列において信頼すべきものであることを示し得るようにし得る。   API calls that can be made to the computing resource monitoring service 104 to store measurements (e.g., metric observations) are further that the data provided in a particular time series of metrics should be reliable in the time series. It may include one or more parameters that may be used to specify something. For example, metrics measurements are aggregated during a specific retention period, so customer 102 specifies for a time series that one or more provided measurements are reliable in the time series, The computing resource monitoring service 104 may indicate to the entity requesting the measurements that the measurements provided in time series are in fact reliable and stable. In one embodiment, when the computing resource monitoring service 104 receives an API call that includes one or more parameters that can be used to specify that the provided measurements are reliable in time series, The computing resource monitoring service 104 will make the various measurements in the time series available as soon as the received measurements are aggregated and stored with other measurements in the time series. This measurement and other measurements in the time series may be available to the customer 102 or other entity, and the computing resource monitoring service 104 may indicate that these measurements are reliable in the time series. You can do so.

コンピューティングリソースモニタリングサービス104が測定値をシリアライズされたフォーマットに変換すると、コンピューティングリソースモニタリングサービス104は、測定値を、各データセンタ106内の1つまたは複数の分割サブシステム108に送信し得る。一実施形態では、各分割サブシステム108は、FQMI及び測定値のタイムスタンプに少なくとも部分的に基づいて、複数の論理パーティションのどの論理パーティションが測定値を保存するのに使用されるのかを判定する。受信した様々な測定値に対して、分割サブシステム108は、これらの様々な測定値を、さらに1つまたは複数の保持期間においてデータセンタ108内のいくつかのアクティブな集計サブシステム110に少なくとも部分的に基づいて、様々な論理パーティションに分け得る。いくつかのアクティブな集計サブシステム110を判定するために、分割サブシステム108は、メトリクスマッピングレジストリにアクセスし得る。このメトリクスマッピングレジストリは、論理パーティションの、1つまたは複数の保持期間においてアクティブな集計サブシステム110に対するマッピングを提供し得る。分割サブシステム108は、データセンタ106内の単一の集計サブシステム110に結び付けられた、選択された論理パーティションに関連するファイルベースのキュー内に測定値を保存し得る。   Once the computing resource monitoring service 104 converts the measurements into a serialized format, the computing resource monitoring service 104 may send the measurements to one or more split subsystems 108 within each data center 106. In one embodiment, each splitting subsystem 108 determines which logical partition of the plurality of logical partitions is used to store measurements based at least in part on the FQMI and measurement timestamp. . For the various measurements received, the split subsystem 108 at least partially distributes these various measurements to several active aggregation subsystems 110 in the data center 108 in one or more retention periods. Can be divided into various logical partitions. To determine a number of active aggregation subsystems 110, the splitting subsystem 108 may access a metric mapping registry. This metric mapping registry may provide a mapping for the aggregation subsystem 110 that is active in one or more retention periods of the logical partition. Split subsystem 108 may store measurements in a file-based queue associated with a selected logical partition that is associated with a single aggregation subsystem 110 in data center 106.

ファイルベースのキューは、様々な測定値を含み得、これらの測定値は、一定の期間が経過すると(例えば、数ミリ秒ごとなど)バッチ処理され、対応する集計サブシステム110に非同期的に配信され得る。これらのファイルベースのキュー内の測定値は、メトリクスマッピングレジストリを通して判定されたように、各保持期間において、データセンタ106ごとにたった1つの集計サブシステム110に配信され得る。ファイルベースのキュー内の測定値は、さらに、測定値ごとの観察時間に少なくとも部分的に基づいて、部分分割され得る。このことによって、分割サブシステムが、最新の測定値の配信を第1に優先するように、測定値を集計サブシステム110に配信することが可能になり得る。未来のタイムスタンプを有する測定値(最近の保持期間の最近の時系列を過ぎている)は、時系列が現在となったときのみ処理され得る別個の未分割のキューの待ち行列に入れられ得る。さらに、分割サブシステム108は、最も古い保持期間より以前のタイムスタンプを有する測定値をパージし得る。   A file-based queue may contain various measurements that are batched over a period of time (eg, every few milliseconds) and delivered asynchronously to the corresponding aggregation subsystem 110. Can be done. Measurements in these file-based queues can be distributed to only one aggregation subsystem 110 per data center 106 in each retention period, as determined through the metrics mapping registry. Measurements in the file-based queue may be further subdivided based at least in part on the observation time for each measurement. This may allow the splitting subsystem to distribute the measurement values to the aggregation subsystem 110 so that distribution of the latest measurement values is given first priority. Measurements with future timestamps (beyond the most recent time series of recent retention periods) can be queued in a separate undivided queue that can only be processed when the time series becomes current . In addition, the splitting subsystem 108 may purge measurements that have time stamps prior to the oldest retention period.

集計サブシステム110は、測定値を集計し様々なメトリクスの時系列の測定値データを与えるのに最適化され得るメモリ内キー値ストレージシステムである。一実施形態では、メモリ内キー値ストレージシステムは、集計された測定値を保存するために、1つまたは複数のコンピュータシステムのメインメモリに依存する。例えば、メモリ内キー値ストレージシステムは、メモリバスを介して、コンピュータシステムの中央処理装置(CPU)に直接的にまたは間接的に接続され得る。このことによって、CPUは、GETリクエストに応答してメモリ内キー値ストレージシステム内に保存された任意のデータを取得することが可能になり得、または、GETリクエストに応答してメモリ内キー値ストレージシステム内に任意のデータを保存することが可能になり得る。メインメモリは、CPUに直接アクセス可能でもあり得る。メモリ内キー値ストレージシステムは、揮発性ストレージシステム(例えば、ランダムアクセスメモリ(RAM)など)または不揮発性ストレージシステムを用いて形成され得る。一部の実施形態では、測定値は、ソリッドステートドライブ(SSD)などのソリッドステートストレージに保存され得る。   The aggregation subsystem 110 is an in-memory key value storage system that can be optimized to aggregate measurement values and provide time series measurement data for various metrics. In one embodiment, the in-memory key value storage system relies on the main memory of one or more computer systems to store the aggregated measurements. For example, an in-memory key value storage system may be connected directly or indirectly to a central processing unit (CPU) of a computer system via a memory bus. This may allow the CPU to obtain any data stored in the in-memory key value storage system in response to a GET request, or in-memory key value storage in response to a GET request. It may be possible to store arbitrary data in the system. The main memory may also be directly accessible to the CPU. The in-memory key value storage system may be formed using a volatile storage system (eg, random access memory (RAM), etc.) or a non-volatile storage system. In some embodiments, the measurements can be stored in a solid state storage such as a solid state drive (SSD).

集計サブシステム110は、データセンタ106内の様々な分割サブシステム108から複数の測定値を取得し得、測定値を、非同期的な処理のために、ファイルベースのキュー内に配置し得る。集計期間中に特定のメトリクスが観察されたことが初めてである場合、集計サブシステム110は、この特定のメトリクスの測定値を集計データストア内に、そのシリアライズされたフォーマットで保存し得る。あるいは、特定のメトリクスは以前観察されたことがある場合、集計サブシステム110は、保存されたメトリクスの測定値を取得し、保存された測定値及び新規に取得された測定値をデシリアライズし、新規に取得された測定値を既存の測定値とシリアライズされたフォーマットで集計し得る。次いで、これらの集計された測定値は、クエリリクエストを満たすために集計データストア内に保存され得る。一実施形態では、集計サブシステム110は、測定値の保存のために、最も古い保持期間がその後の保持期間に置き換わると、任意の期限切れした測定値を集計データストアからパージするであろう。   Aggregation subsystem 110 may obtain multiple measurements from various split subsystems 108 in data center 106 and place the measurements in a file-based queue for asynchronous processing. If this is the first time that a particular metric has been observed during the aggregation period, the aggregation subsystem 110 may store the measurement value for this particular metric in its aggregated data store in its serialized format. Alternatively, if a particular metric has been observed before, the aggregation subsystem 110 obtains a stored metric measurement, deserializes the stored metric and the newly acquired metric, Newly acquired measurements can be aggregated with existing measurements in a serialized format. These aggregated measurements can then be stored in an aggregate data store to satisfy the query request. In one embodiment, the aggregation subsystem 110 will purge any expired measurement values from the aggregation data store when the oldest retention period is replaced by a subsequent retention period for measurement storage.

任意の時点で、コンピューティングリソースサービスプロバイダのカスタマー102は、任意の数の測定値を様々な集計データストアから検索するリクエストをコンピューティングリソースモニタリングサービス104に送信し得る。測定値を検索するリクエストは、GET呼び出しなどのAPI呼び出しの形式でコンピューティングリソースモニタリングサービス104に提供され得る。コンピューティングリソースモニタリングサービス104が、リクエストを満たすのに必要な測定値を取得するために、カスタマー102は、取得される測定値に対するメタデータを提供することを必要とされ得る。このことによって、コンピューティングリソースモニタリングサービス104がメタデータをハッシュして、測定値に対する1つまたは複数のFQMIを取得することが可能になり得る。コンピューティングリソースモニタリングサービス104は、1つまたは複数のFQMIを用いて、メトリクスマッピングレジストリから、1つまたは複数の現在の保持期間における測定値の1つまたは複数の位置を識別し得る。   At any point in time, the computing resource service provider customer 102 may send a request to the computing resource monitoring service 104 to retrieve any number of measurements from various aggregate data stores. A request to retrieve measurements may be provided to the computing resource monitoring service 104 in the form of an API call such as a GET call. In order for the computing resource monitoring service 104 to obtain the measurements necessary to satisfy the request, the customer 102 may be required to provide metadata for the obtained measurements. This may allow the computing resource monitoring service 104 to hash the metadata and obtain one or more FQMIs for the measurements. The computing resource monitoring service 104 may identify one or more locations of measurements in one or more current retention periods from the metrics mapping registry using one or more FQMIs.

一実施形態では、カスタマー102からコンピューティングリソースをモニタリングサービス104への、測定値データ(例えば、メトリクスの1つまたは複数の測定値)を様々な集計データストアから検索するAPI呼び出しは、パラメータを含み得、このパラメータは、カスタマー102が、信頼できる結果をリクエストしていることを示すのに用いられ得る。例えば、API呼び出しが、特定の時間範囲及びメトリクスに対して信頼できる結果をリクエストするパラメータを含む場合、コンピューティングリソースモニタリングサービス104は、指定された時間範囲内のメトリクスの測定値を検索し、これらの測定値のいずれも信頼できるかどうかを判定し得る。例えば、上述のように、カスタマー102は、PUT API呼び出しを用いて、特定のある測定値または一連の測定値が時系列において信頼できるものであることを指定し得る。コンピューティングリソースモニタリングサービス104は、この情報を用いて信頼できる測定値を識別し、これらの測定値をカスタマー102または他のリクエストしているエンティティに提供し得る。一部の実施形態では、カスタマー102は、カスタマー102が特定の時間範囲において信頼できる測定値を取得することにとらわれないことを示すパラメータを含むGET API呼び出しを送ることができる。このことによって、コンピューティングリソースモニタリングサービス104は、測定値が信頼できるか否かに関わらず、指定された時間範囲において、全ての測定値を提供し得る。   In one embodiment, the API call that retrieves the measurement data (eg, one or more measurements of the metric) from the customer 102 to the monitoring service 104 for computing resources from various aggregate data stores includes a parameter. This parameter can be used to indicate that the customer 102 is requesting reliable results. For example, if an API call includes parameters that request reliable results for a particular time range and metric, the computing resource monitoring service 104 searches for metrics measurements within a specified time range and these It can be determined whether any of the measured values is reliable. For example, as described above, customer 102 may use a PUT API call to specify that a particular measurement or series of measurements is reliable in time series. The computing resource monitoring service 104 may use this information to identify reliable measurements and provide these measurements to the customer 102 or other requesting entity. In some embodiments, customer 102 may send a GET API call that includes a parameter indicating that customer 102 is not bound to take reliable measurements over a particular time range. This allows the computing resource monitoring service 104 to provide all measurements over a specified time range, regardless of whether the measurements are reliable.

リクエストされた測定値が保存されている位置を判定すると、コンピューティングリソースモニタリングサービス104は、メトリクス統合エンジン112を用いてリクエストを様々なデータセンタ106から適切な集計サブシステム110に送信して、GETリクエストを満たすのに必要な測定値を取得し得る。メトリクス統合エンジン112は、コンピューティングリソースモニタリングサービス104のコンピュータシステムモジュールであり得、様々な集計サブシステム110から測定値を読み出すことを当該モジュールに可能にさせるクライアントライブラリを含み得る。メトリクス統合エンジン112が様々な集計サブシステム110から測定値を取得すると、各データセンタ106の測定値はコンパイルされて、データセンタ106の測定値のレスポンスを生成し得る。メトリクス統合エンジン112は、生成されたレスポンスが競合する場合、1つまたは複数の競合解消ルールを用いて、GETリクエストに対する適切なレスポンスを判定し得る。例えば、メトリクス統合エンジン112は、様々なデータセンタ106から、最多のサンプルカウントを有するレスポンスを選択し得る。メトリクス統合エンジン112は、GETリクエストに対するレスポンスを、カスタマー102が自らの目的のために用い得るデシリアライズされたフォーマットの測定値の形式で提供し得る。   Upon determining the location where the requested measurement is stored, the computing resource monitoring service 104 sends the request from the various data centers 106 to the appropriate aggregation subsystem 110 using the metrics integration engine 112 to obtain a GET. Measurements necessary to satisfy the request can be obtained. The metrics integration engine 112 may be a computer system module of the computing resource monitoring service 104 and may include a client library that allows the module to read measurements from various aggregation subsystems 110. As the metrics integration engine 112 obtains measurements from the various aggregation subsystems 110, the measurements for each data center 106 may be compiled to generate a response for the data center 106 measurements. Metrics integration engine 112 may determine an appropriate response to a GET request using one or more conflict resolution rules if the generated responses conflict. For example, the metrics integration engine 112 may select the response with the highest sample count from the various data centers 106. Metrics integration engine 112 may provide responses to GET requests in the form of measurements in a deserialized format that customer 102 can use for their purposes.

一実施形態では、メトリクス統合エンジン112は、これらの測定値を、1つまたは複数のサーバコンピュータ及びコンピューティングリソースを備えるオートスケールグループに提供するように構成されている。測定値は、グループ内のコンピューティングリソースに関連するメトリクスに対する、オートスケールグループ内の1つまたは複数のコンピューティングリソースマネージャからのGETリクエストに応答して、メトリクス統合エンジン112によって取得され得る。これらの1つまたは複数のコンピューティングリソースマネージャは、特定のメトリクスに対する取得された測定値を用いて、既存のコンピューティングリソースのスケーリングが必要かどうかを判定し得る。必要である場合、オートスケールグループの各サーバコンピュータ内のコンピューティングリソースマネージャは、必要に応じて、さらなるコンピューティングリソースを供給し得、またはオートスケールグループからコンピューティングリソースを削除し得る。   In one embodiment, metrics integration engine 112 is configured to provide these measurements to an autoscale group comprising one or more server computers and computing resources. Measurements may be obtained by the metrics integration engine 112 in response to GET requests from one or more computing resource managers in the autoscale group for metrics associated with computing resources in the group. These one or more computing resource managers may use the obtained measurements for a particular metric to determine whether scaling of existing computing resources is necessary. If necessary, the computing resource manager in each server computer of the autoscale group may supply additional computing resources or remove computing resources from the autoscale group as needed.

一部の実施形態では、分割サブシステム108は、カスタマー102の1つまたは複数のクライアント側コンピューティングシステム内で用いられることに留意すべきである。例えば、クライアント側コンピューティングシステムは、測定値を様々なコンピューティングリソースから取得し得、測定値に対するメタデータを直接ハッシュし得る。さらに、カスタマークライアントデバイスは、コンピューティングリソースモニタリングサービス104によって提供されるメトリクスマッピングレジストリにアクセスして、どの集計サブシステム110が、カスタマークライアントデバイス内の分割サブシステム108の論理パーティション内に保存された測定値を受信するかを判定し得る。カスタマークライアントデバイスは、PUTリクエストをコンピューティングリソースモニタリングサービス104の対応する集計サブシステム110に送信して、測定値を保存し得る。測定値は、対応する集計サブシステム110への各測定値の送信が成功したかどうかをカスタマークライアントデバイスが判定することを可能にし得る1つまたは複数の通信プロトコルを用いて送信され得る。測定値の送信が成功しなかった場合、カスタマークライアントデバイスは、分割サブシステム108のファイルベースのキューをリフレッシュし、失敗したリクエストごとに、新規のPUTリクエストを集計サブシステム110に送信し得る。それ以外の場合、カスタマークライアントデバイスは、集計サブシステム110から、測定値の配信が成功したという確認応答を受信し得る。   It should be noted that in some embodiments, splitting subsystem 108 is used within one or more client-side computing systems of customer 102. For example, a client-side computing system can obtain measurements from various computing resources and can directly hash the metadata for the measurements. In addition, the customer client device accesses the metrics mapping registry provided by the computing resource monitoring service 104 to determine which aggregation subsystem 110 is stored in the logical partition of the split subsystem 108 in the customer client device. It may be determined whether a value is received. The customer client device may send a PUT request to the corresponding aggregation subsystem 110 of the computing resource monitoring service 104 to store the measurements. Measurements may be transmitted using one or more communication protocols that may allow the customer client device to determine whether transmission of each measurement to the corresponding aggregation subsystem 110 was successful. If the measurement transmission is not successful, the customer client device may refresh the file-based queue of the split subsystem 108 and send a new PUT request to the aggregation subsystem 110 for each failed request. Otherwise, the customer client device may receive an acknowledgment from the aggregation subsystem 110 that the measurement has been successfully delivered.

上述のように、コンピューティングリソースモニタリングサービスは、カスタマー、アドミニストレータ、コンピューティングリソース及び他のエンティティから測定値を取得し、これらの測定値を、サービスによって定義されたような特定の保持期間にわたって1つまたは複数の集計データストア内に保存し得る。コンピューティングリソースモニタリングサービスによって取得された測定値は、到達するとリアルタイムで集計され得る。このことによって、コンピューティングリソースモニタリングサービスは、リクエストに対応して迅速に測定値を集計データストアから取得することが可能になり得、カスタマー及び他のエンティティが測定値をそれぞれのニーズに利用することを可能とする。したがって、図2は、少なくとも一実施形態による、コンピューティングリソースモニタリングサービス202のフロントエンドサーバ204が、1つまたは複数のAPI呼び出しを処理して、測定値をサービス202で保存かつ検索する環境200の具体例を示す。   As described above, the computing resource monitoring service obtains measurements from customers, administrators, computing resources, and other entities, and these measurements are taken together over a specific retention period as defined by the service. Or it can be stored in multiple aggregated data stores. Measurements obtained by the computing resource monitoring service can be aggregated in real time as they arrive. This may allow the computing resource monitoring service to quickly obtain measurements from the aggregate data store in response to requests, allowing customers and other entities to use measurements for their needs. Is possible. Accordingly, FIG. 2 illustrates an environment 200 in which the front-end server 204 of the computing resource monitoring service 202 processes one or more API calls to store and retrieve measurements in the service 202, according to at least one embodiment. A specific example is shown.

環境200では、コンピューティングリソースモニタリングサービス202のフロントエンドサーバ204はカスタマーコンピュータシステムからPUTリクエストを受信して、測定値を集計データストア内に保存し得る。カスタマーコンピュータシステムは、コンピューティンリソースサービスプロバイダによってホストされるがカスタマーによって管理されるコンピュータシステムであり得る。あるいは、カスタマーコンピュータシステムは、自らのデータセンタに、カスタマーによってホストされるコンピュータシステム及びリソースを含み得る。PUTリクエストは、所与のタイムスタンプで、特定のメトリクスの測定値を含み得る。加えて、PUTリクエストは、さらに、提供された測定値に対するメタデータを含み得る。このメタデータは、コンピューティングリソースモニタリングサービス202内で、関連する測定値及びメトリクスを固有に識別し得る1つまたは複数のメトリクス属性を含み得る。例えば、メタデータは、PUTリクエストを送っているカスタマーコンピュータシステムに関連するまたは測定値の生成に関与している別のコンピューティングリソースに関連するカスタマーのアカウント番号、コンピューティングリソースの管理に関与している特定のサービスの名前(例えば、仮想コンピュータシステムサービス、データベースサービスなど)、測定値のディメンション(例えば、キー/値のペア)及び測定値を生成しているコンピューティングリソースの識別子を、個々にまたは組み合わせて指定し得る。   In the environment 200, the front-end server 204 of the computing resource monitoring service 202 may receive a PUT request from a customer computer system and store measurements in an aggregate data store. A customer computer system may be a computer system hosted by a computing resource service provider but managed by a customer. Alternatively, customer computer systems may include computer systems and resources hosted by customers in their data centers. A PUT request may include a measurement for a particular metric at a given time stamp. In addition, the PUT request may further include metadata for the provided measurements. This metadata may include one or more metric attributes that may uniquely identify relevant measurements and metrics within the computing resource monitoring service 202. For example, the metadata is related to the customer account number associated with the customer computer system sending the PUT request or related to another computing resource involved in generating the measurement, involved in managing the computing resource. The name of a particular service (eg, virtual computer system service, database service, etc.), the dimension of the measurement (eg, key / value pair) and the identifier of the computing resource generating the measurement, individually or Can be specified in combination.

フロントエンドサーバ204が、カスタマーコンピュータシステムからPUTリクエストを受信すると、フロントエンドサーバ204は、PUTリクエストからメタデータを取得し、ハッシュ関数を用いて、集計データストア内に保存される測定値に対するFQMIを生成し得る。さらに、フロントエンドサーバ204は、測定値を、1つまたは複数のデータセンタ206内の分割サブシステム208に発行するために、シリアライズされたフォーマットに変換し得る。カスタマーコンピュータシステムから取得された特定の測定値のシリアライズされたフォーマットは、FQMI、測定値のタイムスタンプ、測定値の測定の単位及び測定値自体を含み得る。フロントエンドサーバ204は、様々なPUTリクエストの未分割の測定値を、1つまたは複数のデータセンタ206の1つまたは複数の分割サブシステム208へ非同期的に配信するために、スプールし得る。例えば、フロントエンドサーバ204は、各データセンタ206内に保持された分割サブシステム208のうち少なくとも1つの分割サブシステム208に測定値を送信するように各々が構成され得る1つまたは複数のファイルベースのキューを含み得る。   When the front-end server 204 receives a PUT request from the customer computer system, the front-end server 204 obtains metadata from the PUT request and uses the hash function to calculate the FQMI for the measurement value stored in the aggregate data store. Can be generated. Further, the front-end server 204 may convert the measurements into a serialized format for publication to a split subsystem 208 within one or more data centers 206. The serialized format of a particular measurement obtained from a customer computer system may include FQMI, measurement timestamp, measurement unit of measurement, and measurement itself. The front-end server 204 may spool for unsplit measurements of various PUT requests to be delivered asynchronously to one or more split subsystems 208 of one or more data centers 206. For example, the front-end server 204 may be configured with one or more file bases, each of which may be configured to send measurements to at least one of the split subsystems 208 held within each data center 206. Can include a number of queues.

一実施形態では、カスタマーコンピュータシステムが、同一のメトリクスの測定値を保存するその後のPUTリクエストを送る場合、カスタマーコンピュータシステムは、メタデータが期限切れしていない限り、測定値の完全なメタデータの代わりに、メトリクスに対するFQMIを提供するだけでよい。あるいは、PUTリクエストは、同一のメトリクスの別の測定値を保存する初期PUTリクエスト内で受信されたメタデータの少なくとも一部が欠落し得る。以下でより詳細に記載するように、1つまたは複数の分割サブシステム208は、提供されたFQMIを用いて、測定値を集計データストア内に保存し得、測定値を検索するリクエストに応答しかつメタデータを指定する情報が、少なくとも両方の測定値を含むようにする。   In one embodiment, if the customer computer system sends a subsequent PUT request that stores measurements for the same metric, the customer computer system will replace the complete metadata for the measurement unless the metadata has expired. In addition, it is only necessary to provide an FQMI for the metrics. Alternatively, the PUT request may be missing at least some of the metadata received in the initial PUT request that stores another measurement of the same metric. As described in more detail below, one or more split subsystems 208 may use the provided FQMI to store measurements in an aggregate data store and respond to requests to retrieve measurements. Information specifying the metadata includes at least both measured values.

PUTリクエストにおいて、さらに、カスタマーコンピュータシステムには、提供された測定値の保存のために各種オプションが提供され得る。例えば、一実施形態では、PUT APIにより、カスタマーコンピュータシステムは、提供された測定値が、コンピューティングリソースモニタリングサービス202による測定値の集計の一定期間中に特定のメトリクスに対して提供される最後の測定値であるかどうかを指定することが可能になり得る。例えば、フロントエンドサーバ204が、測定値を、分割サブシステム208への配信に先立って、特定の時間間隔(例えば、1秒、1分、1時間など)でバッチ処理するように構成されている場合、カスタマーコンピュータシステムは、提供された測定値が特定の時間間隔において最後の測定値であることをPUT APIを通じて指定し得る。このことによって、フロントエンドサーバ208は、現在の時間間隔がまだ経過していなくても、測定値を分割サブシステム208へ配信するために準備し得る。このことによって、フロントエンドサーバ204はカスタマーコンピュータシステムからのさらなる測定値を待つ必要がなくなり得るので、測定値の保存および利用可能性をより早く実現し得る。別の実施形態では、フロントエンドサーバ204は、ランレングス符号化を用いて、測定値の一定時間間隔において、同一の値を有する1つまたは複数の連続した測定値に対して、取得された測定値を圧縮するであろう。このことは、シリアライズされた測定値に必要な保存空間を減少させ得る。   In the PUT request, the customer computer system may further be provided with various options for storing the provided measurements. For example, in one embodiment, the PUT API allows the customer computer system to provide the last measurement provided for a particular metric during a certain period of measurement aggregation by the computing resource monitoring service 202. It may be possible to specify whether it is a measurement value. For example, the front end server 204 is configured to batch process measurements at specific time intervals (eg, 1 second, 1 minute, 1 hour, etc.) prior to delivery to the split subsystem 208. If so, the customer computer system may specify through the PUT API that the provided measurement is the last measurement in a particular time interval. This allows the front end server 208 to be ready to deliver measurements to the split subsystem 208 even if the current time interval has not yet elapsed. This may enable faster storage and availability of measurements because the front end server 204 may not have to wait for further measurements from the customer computer system. In another embodiment, the front-end server 204 uses run-length encoding to obtain acquired measurements for one or more consecutive measurements having the same value over a fixed time interval of measurements. Will compress the value. This can reduce the storage space required for serialized measurements.

一実施形態では、フロントエンドサーバ204は、受信したPUTリクエストに少なくとも部分的に基づいて生成されたシリアライズされた測定値を、測定値の冗長的な保存のために、各データセンタ206へ送る。各データセンタ206は、シリアライズされた測定値を特定のデータセンタ206内の分割サブシステム208に送信するように構成され得る分割ロードバランサ(図示せず)を含み得る。分割サブシステムは、様々なメトリクスの測定値を、データセンタ206内の1つまたは複数の集計サブシステム210へ配信するために、各測定値のFQMI及びタイムスタンプに少なくとも部分的に基づいて分割するように集合的に構成された1つまたは複数のコンピュータシステムを含み得る。分割サブシステム208は、フロントエンドサーバ204から測定値を取得すると、メトリクスマッピングレジストリ212にアクセスして、論理パーティションのデータセンタ206内の集計サブシステム210に対するマッピングを経時的に取得し得る。メトリクスマッピングレジストリは、マッピングのデータベースと、各データセンタ内の利用可能な集計サブシステム210に少なくとも部分的に基づいて、分割スケジュールを作成する1つまたは複数のコンピュータシステムとを含み得る。例えば、メトリクスマッピングレジストリ212は、所定の(例えば、コンピューティングリソースモニタリングサービス202またはコンピューティングリソースサービスプロバイダによって定義された)時間間隔で、様々なデータセンタ206内の様々な集計サブシステム210を評価し得る。この評価は、未来の時間に対する分割スケジュールを生成するのに用いられ得る。一部の実施形態では、分割スケジュールは、集計サブシステム210の利用可能性に関する緊急課題、測定値の保存のために必要なスループット及び他の課題に対処するために、手動で更新することができる。マッピングは、マッピングがアクティブである特定の保持期間に対応し得る。保持期間が経過すると、メトリクスマッピングレジストリ212は、次のマッピングを現在のものとし、分割スケジュールに対する最近の変化の履歴を保持して、GETリクエストが正しい集計サブシステム210に振り分けられることを可能にし得る。   In one embodiment, the front end server 204 sends serialized measurements generated based at least in part on the received PUT request to each data center 206 for redundant storage of measurements. Each data center 206 may include a split load balancer (not shown) that may be configured to send serialized measurements to a split subsystem 208 within a particular data center 206. The splitting subsystem splits the various metric measurements based at least in part on the FQMI and timestamp of each measurement for delivery to one or more aggregation subsystems 210 in the data center 206. One or more computer systems configured collectively as such. Once the split subsystem 208 obtains measurements from the front-end server 204, it may access the metrics mapping registry 212 to obtain mappings for the aggregation subsystem 210 in the logical partition's data center 206 over time. The metrics mapping registry may include a database of mappings and one or more computer systems that create split schedules based at least in part on the available aggregation subsystems 210 in each data center. For example, the metrics mapping registry 212 evaluates various aggregation subsystems 210 in various data centers 206 at predetermined time intervals (eg, defined by the computing resource monitoring service 202 or computing resource service provider). obtain. This evaluation can be used to generate a split schedule for future times. In some embodiments, the split schedule can be updated manually to address urgent issues regarding the availability of the aggregation subsystem 210, the throughput required to store measurements, and other issues. . The mapping may correspond to a specific retention period for which the mapping is active. When the retention period expires, the metrics mapping registry 212 may make the next mapping current and keep a history of recent changes to the split schedule to allow GET requests to be routed to the correct aggregation subsystem 210. .

分割サブシステム208は、メトリクスマッピングレジストリ212からのマッピングを用いて、論理パーティションごとに、分割された測定値の配信先となる集計サブシステム210を判定し得る。分割サブシステム208は、PUTリクエストを通じて取得された測定値のFQMI及びタイムスタンプに少なくとも部分的に基づいて、測定値の保存のために、複数の論理パーティションからある論理パーティションを選択し得る。上述のように、FQMIは、メタデータに提供されたメトリクス属性をハッシュするハッシュ関数を用いて作成され得る。例えば、FQMIは、複数バイトのハッシュを含み得、このハッシュの一部は、測定値のメトリクスごとに論理パーティションを判定するのに用いられ、このハッシュの別の一部は、論理パーティション内の測定値の固有の識別に用いられる。この論理パーティションは、メトリクスマッピングレジストリ212によって、特定の集計サブシステム210にマッピングされ得る。   The division subsystem 208 can determine the aggregation subsystem 210 to which the divided measurement values are distributed for each logical partition using the mapping from the metrics mapping registry 212. The splitting subsystem 208 may select a logical partition from a plurality of logical partitions for storage of measurements based at least in part on the FQMI and timestamp of the measurements obtained through the PUT request. As described above, the FQMI can be created using a hash function that hashes a metric attribute provided in the metadata. For example, the FQMI may include a multi-byte hash, a portion of this hash being used to determine a logical partition for each metric of the measurement, and another portion of this hash may be a measurement within the logical partition. Used for unique identification of values. This logical partition may be mapped to a specific aggregation subsystem 210 by the metrics mapping registry 212.

分割サブシステム208は、分割された測定値を、データセンタ206内の単一の集計サブシステム210へ各々が結び付けられたファイルベースのキュー内に保存し得る。各ファイルベースのキュー内の測定値は、一定の短い時間間隔で(例えば、数ミリ秒ごとなど)、バッチ処理され、各集計サブシステム210に非同期的に配信され得る。このことによって、分割サブシステム208は、メトリクスマッピングレジストリ212によって判定されたように、各保持期間の間、各論理パーティションからの測定値をデータセンタ206ごとにたった1つの集計サブシステム210に配信することが可能になり得る。各論理パーティションは、さらに、測定値のタイムスタンプによって部分分割され得る。分割サブシステム208は、最新の測定値の集計サブシステム210への配信を第1に優先し得る。任意の時点でファイルベースのキューが容量いっぱいになった場合、分割サブシステム208は、最も古い測定値をファイルベースのキューからパージし得る。さらに、最も古い保持期間よりも以前のタイムスタンプの測定値もパージされ得る。分割サブシステム208は、タイムスタンプが未来の時間に対応する(例えば、タイムスタンプが、最近の保持期間を過ぎている時間を指定している)測定値のために、別個の未分割のキューを保持し得る。これらの未来観察は、これらの測定値のタイムスタンプが現在となり保持期間内に存在するときのみ処理され得る。   The split subsystem 208 may store the split measurements in a file-based queue that is each associated with a single aggregation subsystem 210 in the data center 206. Measurements in each file-based queue can be batched and delivered asynchronously to each aggregation subsystem 210 at regular short time intervals (eg, every few milliseconds). This allows the splitting subsystem 208 to deliver measurements from each logical partition to only one aggregation subsystem 210 for each data center 206 during each retention period, as determined by the metrics mapping registry 212. It may be possible. Each logical partition may be further subdivided by a measurement timestamp. The division subsystem 208 may first prioritize the delivery of the latest measurement values to the aggregation subsystem 210. If the file-based queue becomes full at any time, the split subsystem 208 may purge the oldest measurement from the file-based queue. In addition, timestamp measurements prior to the oldest retention period may be purged. The splitting subsystem 208 creates a separate unsplit queue for measurements where the timestamp corresponds to a future time (eg, the time stamp specifies the time past a recent retention period). Can hold. These future observations can only be processed when the timestamp of these measurements is current and exists within the retention period.

上述のように、集計サブシステム210は、様々なメトリクスの測定値をリアルタイムで集計し様々なメトリクスに対する時系列の測定値を与えるのに最適化されたメモリ内キー値ストレージシステムであり得る。集計サブシステム210は、特定のデータセンタ206内の分割サブシステム208の論理パーティションから測定値を取得し、これらの測定値を、集計サブシステム210の専用集計データストアによる非同期的な処理のために、1つまたは複数のファイルベースのキュー内に配置し得る。集計データストアは、ファイルベースのキューからメトリクスの測定値を取得し、集計期間において特定のメトリクスに対する既存の測定値が存在するかどうかを判定し得る。特定のメトリクスに対する既存の測定値が存在しない場合、集計データストアは、シリアライズされた測定値を保存し得、集計サブシステム210は、メトリクスマッピングレジストリ212を更新して、シリアライズされた測定値のデータストア内での保存に成功したことを示し得る。それ以外の場合は、集計サブシステム210は、集計データストアから既存のシリアライズされた測定値を検索し、これらの測定値及びキューから新規に取得された測定値をデシリアライズし得る。集計サブシステム210は、2つのデシリアライズされた測定値のセットを集計し得る。次いで、これらの集計された測定値は、シリアライズされ、集計データストア内に保存され得る。集計サブシステムは、メトリクスマッピングレジストリ212を更新して、論理パーティションから得た測定値の保存が成功したことを示し得る。   As described above, the aggregation subsystem 210 may be an in-memory key value storage system that is optimized to aggregate measurements of various metrics in real time and provide time series measurements for the various metrics. The aggregation subsystem 210 obtains measurements from the logical partitions of the split subsystem 208 within a particular data center 206, and these measurements are for asynchronous processing by the aggregation subsystem 210's dedicated aggregation data store. It may be placed in one or more file-based queues. The aggregate data store may obtain a metric measurement from the file-based queue and determine whether there is an existing measurement for the particular metric in the aggregation period. If there is no existing measurement for a particular metric, the aggregate data store may store the serialized measurement and the aggregation subsystem 210 updates the metric mapping registry 212 to serialize the measurement data. It may indicate successful storage in the store. Otherwise, the aggregation subsystem 210 may retrieve existing serialized measurements from the aggregation data store and deserialize these measurements and newly acquired measurements from the queue. Aggregation subsystem 210 may aggregate two sets of deserialized measurements. These aggregated measurements can then be serialized and stored in an aggregate data store. The aggregation subsystem may update the metric mapping registry 212 to indicate that the measurement obtained from the logical partition has been successfully saved.

任意の時点で、フロントエンドサーバ204は、カスタマーコンピュータシステム、コンピューティングリソース、アドミニストレータまたは他の権限のあるエンティティからGETリクエストを受信して、特定のメトリクスの測定値を、1つまたは複数の集計サブシステム210の1つまたは複数の集計データストアから検索し得る。GETリクエストは、コンピューティングリソースモニタリングサービス202から取得される測定値に対するメタデータを含み得、このメタデータは、メトリクスの測定値を保存するために先の時間に提供されたメタデータと同様なものであり得る。フロントエンドサーバ204は、受信したメタデータをハッシュして、求められている測定値の位置を見つけるのに用いることができるFQMIを生成し得る。フロントエンドサーバ204は、GETリクエストを満たすのに必要な測定値を取得するために、FQMIとともにクエリをメトリクス統合エンジン214に送信し得る。クエリに応答して、メトリクス統合エンジン214は、メトリクスマッピングレジストリ212にアクセスして、GETリクエストを満たすのに必要な測定値がどこに保存されているかを判定し得る。   At any given time, the front-end server 204 receives a GET request from a customer computer system, computing resource, administrator or other authorized entity, and measures a particular metric measurement by one or more aggregation sub-groups. One or more aggregate data stores of system 210 may be searched. The GET request may include metadata for measurements obtained from the computing resource monitoring service 202, which is similar to the metadata provided at a previous time to store the metrics measurements. It can be. The front-end server 204 may hash the received metadata to generate an FQMI that can be used to locate the sought measurement value. The front-end server 204 may send a query to the metrics integration engine 214 along with the FQMI to obtain the necessary measurements to satisfy the GET request. In response to the query, the metrics integration engine 214 may access the metrics mapping registry 212 to determine where the measurements required to satisfy the GET request are stored.

GETリクエストを満たすのに必要な測定値を有する集計サブシステム210を判定するために、メトリクス統合エンジン214は、FQMIをメトリクスマッピングレジストリ212に提供し得る。メトリクスマッピングレジストリ212は、現在のマッピング及びいくつかの保持期間の過去のマッピングを分析して、測定値がどこに保存されているかを判定し得る。メトリクス統合エンジン214が、メトリクスマッピングレジストリ212によって提供された情報に少なくとも部分的に基づいて、測定値が保存されている集計サブシステム210の集計データストアを判定すると、メトリクス統合エンジン214は、各データセンタ206内の集計データストアにアクセスして、リクエストされた測定値を取得し得る。   Metric integration engine 214 may provide FQMI to metrics mapping registry 212 to determine aggregation subsystem 210 that has the necessary measurements to satisfy the GET request. Metric mapping registry 212 may analyze the current mapping and past mappings of several retention periods to determine where the measurements are stored. When the metrics integration engine 214 determines the aggregate data store of the aggregation subsystem 210 where the measurements are stored based at least in part on the information provided by the metrics mapping registry 212, the metrics integration engine 214 determines that each data The aggregated data store in center 206 may be accessed to obtain the requested measurement value.

一実施形態では、メトリクス統合エンジン214は、データセンタ206のそれぞれから取得された測定値をコンパイルする。データセンタ206のコンパイルされた測定値が不整合である場合、メトリクス統合エンジン214は、1つまたは複数の競合解消ルールを用いて、GETリクエストに応答してどの測定値が提供されるのかを判定し得る。例えば、メトリクス統合エンジン214は、様々なデータセンタ206から、最多のサンプルカウントを有するレスポンスを選択し得る。メトリクス統合エンジン214がデータセンタ間の競合が存在する場合はその競合を解消すると、メトリクス統合エンジン214は、測定値をフロントエンドサーバ204に提供し得る。こうして、フロントエンドサーバ204は、GETリクエストを、リクエストしているエンティティに測定値を提供することによって満たすことが可能になり得る。   In one embodiment, the metrics integration engine 214 compiles measurements obtained from each of the data centers 206. If the compiled measurements for data center 206 are inconsistent, metrics integration engine 214 uses one or more conflict resolution rules to determine which measurements are provided in response to a GET request. Can do. For example, the metrics integration engine 214 may select the response with the highest sample count from the various data centers 206. If the metrics integration engine 214 resolves any conflicts between data centers, the metrics integration engine 214 may provide measurements to the front-end server 204. Thus, the front end server 204 may be able to satisfy a GET request by providing measurements to the requesting entity.

フロントエンドサーバ204は、一部の実施形態ではさらに、様々なメトリクスの測定値を、測定値が集計されるとすぐにオートスケールグループの1つまたは複数のコンピューティングリソースマネージャに提供するように構成される。メトリクスマッピングレジストリ212は、オートスケールグループのコンピューティングリソースに対する1つまたは複数のエントリを保持し得、このエントリは、保持期間ごとに、これらのコンピューティングリソースに対する測定値を含む様々なデータセンタ206内の集計データストアを指定し得る。さらに、メトリクス統合エンジン214は、メトリクスマッピングレジストリ212に周期的にアクセスして、これらの測定値を含むこれらの集計データストアを識別するように構成され得る。このことによって、メトリクス統合エンジン212が、これらのコンピューティングリソースに対する測定値を取得し測定値をフロントエンドサーバ204に提供することが可能になり得る。フロントエンドサーバ204は、オートスケールグループの1つまたは複数のコンピューティングリソースマネージャに測定値を送信して、コンピューティングリソースマネージャが、それに応じて、コンピューティングリソースをスケールすることを可能にし得る。一部の例では、1つまたは複数のコンピューティングリソースマネージャは、代わりにGETリクエストをフロントエンドサーバ204に送信し得、フロントエンドサーバは、上記の処理を行って、1つまたは複数のコンピューティングリソースに対するリクエストされた測定値を取得することによってGETリクエストを満たし得る。   The front end server 204 is further configured in some embodiments to provide various metrics measurements to one or more computing resource managers of the autoscale group as soon as the measurements are aggregated. Is done. The metrics mapping registry 212 may maintain one or more entries for the autoscale group of computing resources, which are stored in various data centers 206 that contain measurements for these computing resources for each retention period. You can specify an aggregate data store. Further, the metrics integration engine 214 may be configured to periodically access the metrics mapping registry 212 to identify those aggregate data stores that contain these measurements. This may allow the metrics integration engine 212 to obtain measurements for these computing resources and provide the measurements to the front end server 204. The front-end server 204 may send measurements to one or more computing resource managers of the autoscale group to allow the computing resource manager to scale the computing resources accordingly. In some examples, one or more computing resource managers may instead send a GET request to the front-end server 204, which performs the above processing to one or more computing A GET request may be satisfied by obtaining a requested measurement for a resource.

上述のように、コンピューティングリソースモニタリングサービスは、1つまたは複数のデータセンタ内に、1つまたは複数の分割サブシステムを含み得る。分割サブシステムは、測定値をカスタマーコンピュータシステムから集計サブシステムへ保存のために発行するように集合的に構成された1つまたは複数のコンピュータシステムを含み得る。したがって、図3は、少なくとも一実施形態による、コンピューティングリソースモニタリングサービスの分割サブシステム302が、様々なカスタマーコンピュータシステムからの測定値を様々な論理パーティションに分割し、各論理パーティションの測定値を1つまたは複数の集計サブシステム312に配信する環境300の具体例を示す。分割サブシステム302は、メトリクス採集エンジン304を含み得、このメトリクス採集エンジン304は、フロントエンドサーバから、シリアライズされた測定値を取得するように構成された分割サブシステム302の1つまたは複数のコンピュータシステムのモジュールであり得る。   As described above, the computing resource monitoring service may include one or more split subsystems in one or more data centers. The split subsystem may include one or more computer systems that are collectively configured to publish measurements from the customer computer system to the aggregation subsystem for storage. Accordingly, FIG. 3 illustrates that the computing resource monitoring service partitioning subsystem 302 divides measurements from various customer computer systems into various logical partitions, and measures each logical partition to 1 according to at least one embodiment. A specific example of an environment 300 for distribution to one or more aggregation subsystems 312 is shown. The split subsystem 302 may include a metrics collection engine 304, which is one or more computers of the split subsystem 302 configured to obtain serialized measurements from a front-end server. It can be a module of the system.

メトリクス採集エンジン304は、メトリクスマッピングレジストリ310にアクセスして、フロントエンドサーバから取得された測定値を、1つまたは複数の集計サブシステム312で保存するために、1つまたは複数の論理パーティションに分割する方法を判定し得る。例えば、メトリクス採集エンジン304は、メトリクスマッピングレジストリ310を用いて、特定の保持期間における論理パーティションの集計サブシステム312に対するマッピングを取得し得る。メトリクス採集エンジン304は、受信した測定値を、測定値ごとの受信したFQMI、各測定値のタイムスタンプ及びメトリクスマッピングレジストリ310によってマッピングを通じて定義されたようないくつかの集計サブシステム312に少なくとも部分的に基づいて、1つまたは複数の論理パーティションに分割し得る。   The metrics collection engine 304 accesses the metrics mapping registry 310 and divides the measurements obtained from the front-end server into one or more logical partitions for storage in one or more aggregation subsystems 312. How to do. For example, the metrics collection engine 304 may use the metrics mapping registry 310 to obtain a mapping for a logical partition aggregation subsystem 312 in a particular retention period. The metrics collection engine 304 at least partially passes the received measurements to several aggregate subsystems 312 as defined through mapping by the received FQMI for each measurement, the timestamp of each measurement, and the metrics mapping registry 310. May be divided into one or more logical partitions.

FQMIは、上述のように、測定値に対するメタデータハッシュであり得る。FQMIの一部は、関連するメトリクスに対する論理パーティションを判定するのに用いられ得る。FQMIの別の一部は、論理パーティション内の測定値の識別に用いられ得る。測定値の分割はコンシステントハッシュ法で行われ、集計サブシステム312が特定のデータセンタで追加または削除されるときに集計サブシステム312との間で送信される測定値の量を最小にし得る。測定値の分割はまた、測定値ごとの測定値のタイムスタンプに少なくとも部分的に基づいて行われて、クロックスキューによる影響を除外し得る。   The FQMI can be a metadata hash for the measurement as described above. A portion of the FQMI can be used to determine a logical partition for the associated metric. Another part of FQMI can be used to identify measurements within a logical partition. Measurement partitioning is done with a consistent hash method, which may minimize the amount of measurement sent to and from the aggregation subsystem 312 when the aggregation subsystem 312 is added or removed at a particular data center. Measurement splitting may also be performed based at least in part on the measurement timestamp for each measurement to eliminate the effects of clock skew.

メトリクス採集エンジン304が、取得した測定値を、メトリクスマッピングレジストリ310のマッピングに少なくとも部分的に基づいて1つまたは複数の論理パーティションに分割すると、メトリクス採集エンジン304は、1つまたは複数の論理パーティションの測定値を、1つまたは複数のファイルベースのキュー308内に配置し得る。各ファイルベースのキュー308は、図3に示すように、単一の集計サブシステム312に結び付けられ得る。各論理パーティションは、マッピングに少なくとも部分的に基づいて特定の集計サブシステム312にマッピングされ得るので、ファイルベースのキュー308の特定の集計サブシステム312に対するこの結び付きは、ファイルベースのキュー308に関連付けられた論理パーティションに少なくとも部分的に基づき得る。各ファイルベースのキュー308内の測定値は、測定値の時系列に少なくとも部分的に基づいて、一定の時間間隔で(例えば、数ミリ秒ごと、数秒ごとなど)バッチ処理され、各集計サブシステム312に非同期的に配信され得る。   When the metric collection engine 304 divides the acquired measurements into one or more logical partitions based at least in part on the mapping of the metric mapping registry 310, the metric collection engine 304 includes the one or more logical partitions. Measurements may be placed in one or more file-based queues 308. Each file-based queue 308 may be tied to a single aggregation subsystem 312 as shown in FIG. Since each logical partition may be mapped to a specific aggregation subsystem 312 based at least in part on the mapping, this association of the file-based queue 308 to the specific aggregation subsystem 312 is associated with the file-based queue 308. Based at least in part on the logical partition. Measurements in each file-based queue 308 are batched at regular time intervals (eg, every few milliseconds, every few seconds, etc.) based at least in part on a time series of measurements, and each aggregation subsystem 312 can be delivered asynchronously.

各ファイルベースのキュー308内で、測定値はさらに、測定値ごとのタイムスタンプに少なくとも部分的に基づいて部分分割され得る。このことによって、分割サブシステム302が、最新の測定値が第1に集計サブシステム312に配信されるように測定値の配信に優先順位をつけることが可能になり得る。一実施形態では、ファイルベースのキュー308が容量に達した場合、分割サブシステム302は、最も古いタイムスタンプを有する測定値を識別し、これらの測定値をキュー308からパージする。さらに、最も古い保持期間よりも以前のタイムスタンプを有する測定値も、分割サブシステム302からパージされ得る。このことによって、メトリクス採集エンジン304が、カスタマーコンピュータシステムから測定値を取得し得たフロントエンドサーバから取得された新規の測定値を、ファイルベースのキュー308に連続して追加することが可能になり得る。   Within each file-based queue 308, the measurements may be further subdivided based at least in part on a time stamp for each measurement. This may allow the splitting subsystem 302 to prioritize the distribution of measurement values such that the latest measurement values are first distributed to the aggregation subsystem 312. In one embodiment, when the file-based queue 308 reaches capacity, the split subsystem 302 identifies the measurements with the oldest time stamp and purges these measurements from the queue 308. In addition, measurements with timestamps older than the oldest retention period can also be purged from the split subsystem 302. This allows the metrics collection engine 304 to continuously add new measurements obtained from the front-end server that have obtained measurements from the customer computer system to the file-based queue 308. obtain.

分割サブシステム302は、さらに、いかなる集計サブシステム312にも関連しない別個の未分割のキューであり得る未来観察キュー306を含み得る。メトリクス採集エンジン304は、未来のタイムスタンプを有する測定値(例えば、最も新しい保持期間よりも後のタイムスタンプを有する測定値)を未来観察キュー306に転送し得る。なぜなら、メトリクスマッピングレジストリ310は、これらの測定値を含むであろう保持期間における論理パーティションの集計サブシステム312に対するマッピングを含まないことがあるからである。こうして、メトリクス採集エンジン304は、未来観察キュー306の測定値を、これらの測定値のタイムスタンプが現在となりマッピングが測定値を論理パーティションに保存し論理パーティションの測定値を対応する集計サブシステム312に送信するために利用可能になった場合のみ、処理し得る。   The split subsystem 302 may further include a future observation queue 306 that may be a separate undivided queue that is not associated with any aggregation subsystem 312. Metrics collection engine 304 may transfer measurements with future timestamps (eg, measurements with timestamps later than the most recent retention period) to future observation queue 306. This is because the metrics mapping registry 310 may not include a mapping for the logical partition aggregation subsystem 312 in the retention period that would include these measurements. In this way, the metrics collection engine 304 stores the measured values in the future observation queue 306 in the aggregation subsystem 312 where the time stamps of these measured values become current and the mapping stores the measured values in the logical partition and the corresponding measured values in the logical partition. It can only be processed when it becomes available for transmission.

上述のように、コンピューティングリソースモニタリングサービスは、各データセンタ内に、リアルタイムでメトリクスの測定値を集計し、各種メトリクスに対する時系列の測定値を与えるように構成された1つまたは複数の集計サブシステムを含み得る。集計サブシステムは、測定値を1つまたは複数の集計データストア内に保存すること及びこれらの測定値をカスタマーコンピュータシステム及び他のエンティティからのGETリクエストを満たすのに利用可能にすることという上記のタスクを行うように集合的に構成された1つまたは複数のコンピュータシステムを含み得る。したがって、図4は、少なくとも一実施形態による、集計サブシステム402が、測定値の集計を行い、1つまたは複数のデータストア408内に保存された測定値に対するリードアクセスを提供する環境400の具体例を示す。環境400では、集計サブシステム402は、メトリクス処理エンジン404を含み得る。このメトリクス処理エンジン404は、集計サブシステム402の1つまたは複数のコンピュータシステム内で動作するモジュールを備え得る。メトリクス処理エンジン404は、様々な分割サブシステムの論理パーティションから測定値を、1つまたは複数のデータストア408に保存するために受信し得る。PUTリクエストに応答して、メトリクス処理エンジン404は、受信した1つまたは複数の測定値を、専用集計データストア408による非同期的な処理のためにファイルベースのキュー406内に配置し得る。   As described above, the computing resource monitoring service aggregates metrics measurements in real time within each data center and provides one or more aggregation sub-units configured to provide time series measurements for various metrics. A system can be included. The aggregation subsystem is described above that stores measurements in one or more aggregation data stores and makes these measurements available to satisfy GET requests from customer computer systems and other entities. One or more computer systems may be included that are collectively configured to perform the task. Accordingly, FIG. 4 illustrates an implementation of an environment 400 in which the aggregation subsystem 402 aggregates measurements and provides read access to measurements stored in one or more data stores 408, according to at least one embodiment. An example is shown. In the environment 400, the aggregation subsystem 402 can include a metrics processing engine 404. The metrics processing engine 404 may comprise modules that operate within one or more computer systems of the aggregation subsystem 402. Metrics processing engine 404 may receive measurements from various partitioned subsystem logical partitions for storage in one or more data stores 408. In response to the PUT request, the metrics processing engine 404 may place the received one or more measurements in the file-based queue 406 for asynchronous processing by the dedicated aggregate data store 408.

各集計データストア408は、1つまたは複数のストレージデバイスと、ファイルベースのキュー406から測定値を取得して測定値を1つまたは複数のストレージデバイス内に保存するように構成された少なくとも1つのモジュールとを備え得る。一実施形態では、集計データストア408は、ファイルベースのキュー406から測定値を取得し、同一の集計期間の同一のメトリクスの測定値が集計データストア408内に保存されているかどうかを判定する。保存されている場合、集計データストア408は、特定のメトリクスの測定値を集計するために、保存されている測定値及びキュー404からの測定値をデシリアライズし得る。集計データストア408は、2つの測定値のセットの集計の結果を取得し、上記のバイナリシリアライゼーションフォーマットを用いて、集計された測定値をシリアライズし得る。集計された測定値がシリアライズされると、集計データベース408は、これらの測定値を、データストア408の1つまたは複数のストレージデバイス内に保存し、最近の測定値の保存が成功したという通知をメトリクス処理エンジン404に送信し得る。あるいは、測定値が集計期間中に観察されたのが初めてであった場合、測定値は既にバイナリシリアライゼーションフォーマットであるので、デシリアライズの必要なしに、単に集計データストア408内に保存され得る。メトリクス処理エンジン404が、測定値の集計データストア408内への保存が成功したことの確認を受信すると、メトリクス処理エンジン404は、メトリクスマッピングレジストリ410にアクセスして、マッピング内のエントリを修正して、集計サブシステム402内の測定値の保存完了が成功したことを指定し得る。   Each aggregate data store 408 has at least one storage device and at least one storage configured to obtain measurements from the file-based queue 406 and store the measurements in the one or more storage devices. And a module. In one embodiment, the aggregate data store 408 obtains measurements from the file-based queue 406 and determines whether measurements for the same metric for the same aggregation period are stored in the aggregate data store 408. If stored, the aggregate data store 408 may deserialize the stored measurements and the measurements from the queue 404 to aggregate the measurements for a particular metric. The aggregate data store 408 may obtain the result of the aggregation of the two sets of measurement values and serialize the aggregated measurement values using the binary serialization format described above. When the aggregated measurement values are serialized, the aggregation database 408 stores these measurement values in one or more storage devices of the data store 408 and notifies that the recent measurement values have been successfully stored. It can be sent to the metrics processing engine 404. Alternatively, if it is the first time that a measurement value has been observed during the aggregation period, the measurement value may already be stored in the aggregation data store 408 without the need for deserialization since it is already in binary serialization format. When the metrics processing engine 404 receives a confirmation that the measurements have been successfully stored in the aggregate data store 408, the metrics processing engine 404 accesses the metrics mapping registry 410 to modify the entry in the mapping. , It may be specified that the storage of the measured values in the aggregation subsystem 402 has been successfully completed.

メトリクス処理エンジン404は、コンピューティングリソースモニタリングサービスのメトリクス統合エンジン410からのGETリクエストも処理するように構成され得る。上述のように、メトリクスマッピングレジストリは、論理パーティション及び測定値の、各データセンタ内の集計サブシステム402に対するマッピングを含み得る。メトリクス統合エンジンは、このマッピングを用いて、カスタマーコンピュータシステムからのGETリクエストを満たすのに必要な測定値を有する集計サブシステム402を識別し得る。マッピングに少なくとも部分的に基づいて、メトリクス統合エンジンは、リクエストを、これらの識別された1つまたは複数の集計サブシステム402のそれぞれのメトリクス処理エンジン404に送信して、必要とされる測定値を取得し得る。   Metric processing engine 404 may also be configured to process GET requests from metrics integration engine 410 of the computing resource monitoring service. As described above, the metrics mapping registry may include a mapping of logical partitions and measurements to the aggregation subsystem 402 within each data center. The metrics integration engine may use this mapping to identify the aggregation subsystem 402 that has the necessary measurements to satisfy the GET request from the customer computer system. Based at least in part on the mapping, the metrics integration engine sends a request to the respective metrics processing engine 404 of these identified one or more aggregation subsystems 402 to obtain the required measurements. Can get.

メトリクス処理エンジン404がメトリクス統合エンジンからGETリクエストを受信すると、メトリクス処理エンジン404は、どの集計データストア408がリクエストを満たすのに必要な測定値を有しているかを判定し得る。メトリクス処理エンジン404は、FQMI及び時間範囲を含むクエリを各集計データストア408に送信し得る。各集計データストア408は、提供された情報を用いて、リクエストを満たすのに用いられ得る測定値を識別し得る。1つまたは複数の測定値が識別された場合、集計データストア408は、これらの測定値をメトリクス処理エンジン404に提供し得る。メトリクス処理エンジン404は、GETリクエストを満たすのに用いられ得る測定値をコンパイルし、さらなる処理のために、コンパイルされた測定値をメトリクス統合エンジン410に提供し得る。   When the metrics processing engine 404 receives a GET request from the metrics integration engine, the metrics processing engine 404 may determine which aggregate data store 408 has the necessary measurements to satisfy the request. Metrics processing engine 404 may send a query including the FQMI and time range to each aggregate data store 408. Each aggregate data store 408 may use the information provided to identify measurements that can be used to satisfy the request. If one or more measurements are identified, the aggregate data store 408 may provide these measurements to the metrics processing engine 404. Metrics processing engine 404 may compile measurements that may be used to satisfy a GET request and provide the compiled measurements to metrics integration engine 410 for further processing.

一実施形態では、集計データストア408は、最も古い保持期間がそれよりも後の保持期間に置き換わると、1つまたは複数のストレージデバイスから期限切れの測定値をパージするように構成される。例えば、コンピュータリソースモニタリングサービスは、1つまたは複数の連続した保持期間に対するGETリクエストを扱い得る。新規の保持期間が開始すると、コンピューティングリソースモニタリングサービスは、カスタマーコンピュータシステムまたは他のコンピューティングリソースからのGETリクエストを満たすために多くの連続した保持期間を保持し得る。コンピューティングリソースモニタリングサービスは、期限終了の対象となったがまだパージされていない可能性がある、より古い保持期間に対する測定値も保持し得る。このより古い保持期間に対する測定が期限終了の対象となったとき、集計データストア408は、このより古い保持期間内のタイムスタンプを有する測定値をパージし得る。   In one embodiment, the aggregate data store 408 is configured to purge expired measurements from one or more storage devices when the oldest retention period replaces a later retention period. For example, a computer resource monitoring service may handle GET requests for one or more consecutive retention periods. When a new retention period begins, the computing resource monitoring service may retain many consecutive retention periods to satisfy GET requests from customer computer systems or other computing resources. The computing resource monitoring service may also retain measurements for older retention periods that may have been subject to expiration but have not yet been purged. When a measurement for this older retention period is subject to expiration, the aggregate data store 408 may purge measurements with timestamps within this older retention period.

上述のように、カスタマーコンピュータシステムは、コンピューティングリソースモニタリングサービス内の1つまたは複数の集計サブシステムを用いた集計及び保存に先立って、測定値の分割を内部的に行い得る。このアーキテクチャによって、コンピューティングリソースモニタリングサービスはカスタマーコンピュータシステムの論理パーティションからシリアライズされた測定値を直接取得し得るので、コンピューティングリソースモニタリングサービスが、図2及び図3に関連して上記した1つまたは複数の分割サブシステムを保持する必要性がなくなり得る。したがって、図5は、少なくとも一実施形態による、カスタマーコンピュータシステム502が、測定値を様々な論理パーティションに分割し、これらの測定値をコンピューティングリソースモニタリングサービスの1つまたは複数の集計サブシステム512に配信する環境500の具体例を示す。   As described above, the customer computer system may internally divide the measurement values prior to aggregation and storage using one or more aggregation subsystems within the computing resource monitoring service. This architecture allows the computing resource monitoring service to obtain serialized measurements directly from the logical partition of the customer computer system, so that the computing resource monitoring service can be one or more of those described above in connection with FIGS. There may be no need to maintain multiple split subsystems. Accordingly, FIG. 5 illustrates that, according to at least one embodiment, a customer computer system 502 divides measurements into various logical partitions and distributes these measurements to one or more aggregation subsystems 512 of the computing resource monitoring service. The specific example of the environment 500 to deliver is shown.

環境500では、カスタマーコンピュータシステム502は、メトリクス採集エンジン504を含み得る。このメトリクス採集エンジン504は、カスタマーコンピュータシステム502に関連するコンピューティングリソースから、またはカスタマーコンピュータシステム502自体から測定値を取得するように構成されたカスタマーコンピュータシステム502のモジュールであり得る。メトリクス採集エンジン504は、図3に関連して上記されたメトリクス採集エンジンと同様の動作をし得る。例えば、メトリクス採集エンジン504は、コンピューティングリソースモニタリングサービス内のメトリクスマッピングレジストリ510にアクセスして、取得した測定値を、1つまたは複数の集計サブシステム512に保存するために1つまたは複数の論理パーティションに分割する方法を判定し得る。メトリクス採集エンジン504は、受信した測定値を、測定値ごとの受信したFQMI、各測定値のタイムスタンプ及びメトリクスマッピングレジストリ510によってマッピングを通じて定義されたようないくつかの集計サブシステム512に少なくとも部分的に基づいて、1つまたは複数の論理パーティションに分割し得る。図2に関連して上記した処理とは対称的に、カスタマーコンピュータシステム502は、測定値ごとのメタデータを取得し、ハッシュ関数を用いて測定値に対するFQMIを生成し得る。さらに、カスタマーコンピュータシステム502は、測定値を、メトリクス採集エンジン504による処理のために、シリアライズされたフォーマットに変換し得る。カスタマーコンピュータシステム502から取得された特定の測定値のシリアライズされたフォーマットは、FQMI、測定値のタイムスタンプ、観察のための測定の単位及び測定値自体を含み得る。   In environment 500, customer computer system 502 may include a metrics collection engine 504. The metrics collection engine 504 may be a module of the customer computer system 502 that is configured to obtain measurements from computing resources associated with the customer computer system 502 or from the customer computer system 502 itself. Metrics collection engine 504 may operate in a manner similar to the metrics collection engine described above with respect to FIG. For example, the metrics collection engine 504 accesses one or more logic mapping registries 510 within the computing resource monitoring service to store the acquired measurements in one or more aggregation subsystems 512. A method of partitioning may be determined. The metrics collection engine 504 may at least partially pass the received measurements to several aggregate subsystems 512 as defined through mapping by the received FQMI for each measurement, the timestamp of each measurement, and the metrics mapping registry 510. May be divided into one or more logical partitions. In contrast to the processing described above with respect to FIG. 2, the customer computer system 502 may obtain metadata for each measurement and generate an FQMI for the measurement using a hash function. Further, customer computer system 502 may convert the measurements into a serialized format for processing by metrics collection engine 504. The serialized format of a particular measurement obtained from the customer computer system 502 may include an FQMI, a measurement timestamp, a unit of measurement for observation, and the measurement itself.

メトリクス採集エンジン504が、測定値を、メトリクスマッピングレジストリ510のマッピングに少なくとも部分的に基づいて、1つまたは複数の論理パーティションに分割すると、メトリクス採集エンジン504は、各論理パーティションの1つまたは複数の測定値を、対応するファイルベースのキュー508内に配置し得る。図3に示したファイルベースのキューと同様に、各ファイルベースのキュー508は、単一の集計サブシステム512に結び付けられ得る。各ファイルベースのキュー508の測定値は、測定値の時系列に少なくとも部分的に基づいて、一定の時間間隔で(例えば、数ミリ秒ごと、数秒ごとなど)バッチ処理され、各集計サブシステム512に非同期的に配信され得る。例えば、各時間間隔で、カスタマーコンピュータシステム502は、測定値を含むPUTリクエストを、マッピングに少なくとも部分的に基づいて選択された1つまたは複数の集計サブシステム512に送信し得る。PUTリクエストは、これらの集計サブシステム512に、カスタマーコンピュータシステム502及び集計サブシステム512の両方に互換性のある通信プロトコルを用いて送信され得る。PUTリクエストが成功しなかった場合、通信プロトコルは、論理パーティション内の測定値の送信が失敗したことを指定する通知を生成させ得る。さらに、通信プロトコルにより、カスタマーコンピュータシステム502は、カスタマーコンピュータシステム502と集計サブシステム512の間の通信チャネルをリフレッシュし得る。このことによって、カスタマーコンピュータシステム502が、PUTリクエストの集計サブシステム512への送信をもう一度試みることが可能になり得る。   When the metrics collection engine 504 divides the measurements into one or more logical partitions based at least in part on the mapping of the metrics mapping registry 510, the metrics collection engine 504 may use one or more of the logical partitions. Measurements may be placed in corresponding file-based queues 508. Similar to the file-based queue shown in FIG. 3, each file-based queue 508 can be tied to a single aggregation subsystem 512. Measurements in each file-based queue 508 are batched at regular time intervals (eg, every few milliseconds, every few seconds, etc.) based at least in part on the time series of measurements, and each aggregation subsystem 512 Can be delivered asynchronously. For example, at each time interval, customer computer system 502 may send a PUT request that includes measurements to one or more aggregation subsystems 512 that are selected based at least in part on the mapping. A PUT request may be sent to these aggregation subsystems 512 using a communication protocol that is compatible with both customer computer system 502 and aggregation subsystem 512. If the PUT request is not successful, the communication protocol may generate a notification specifying that the transmission of measurements within the logical partition has failed. Further, the communication protocol allows customer computer system 502 to refresh the communication channel between customer computer system 502 and aggregation subsystem 512. This may allow customer computer system 502 to attempt another transmission of the PUT request to aggregation subsystem 512.

各ファイルベースのキュー508内で、測定値はさらに、測定値のタイムスタンプに少なくとも部分的に基づいて、部分分割され得る。このことによって、カスタマーコンピュータシステム502は、最新の測定値が集計サブシステム512に第1に配信されるように、測定値の配信に優先順位をつけることが可能になり得る。最も古い保持期間よりも以前のタイムスタンプを有する測定値は、カスタマーコンピュータシステム502からパージされ得、または、代替のメトリクスモニタリングサービスに配信され得る。このことによって、メトリクス採集エンジン504が、カスタマーコンピュータシステム502によって生成されたまたは取得された新規の測定値を、ファイルベースのキュー508に連続的に追加することが可能になり得る。   Within each file-based queue 508, the measurements may be further partitioned based at least in part on the timestamps of the measurements. This may allow the customer computer system 502 to prioritize the distribution of measurement values so that the latest measurement values are first distributed to the aggregation subsystem 512. Measurements with timestamps older than the oldest retention period can be purged from the customer computer system 502 or delivered to an alternative metrics monitoring service. This may allow metrics collection engine 504 to continuously add new measurements generated or acquired by customer computer system 502 to file-based queue 508.

図3に示した分割サブシステムと同様に、カスタマーコンピュータシステム502は、さらに、いかなる集計サブシステム512にも関連しない別個の未分割のキューであり得る未来観察キュー506を含み得る。メトリクス採集エンジン504は、未来のタイムスタンプを有する測定値(例えば、最も新しい保持期間よりも後のタイムスタンプを有する測定値)を未来観察キュー506に転送し得る。なぜなら、メトリクスマッピングレジストリ510は、これらのタイムスタンプを有する測定値を含むであろう保持期間における論理パーティションの集計サブシステム512に対するマッピングを含まないことがあるからである。このようにして、メトリクス採集エンジン504は、未来観察キュー506の測定値を、これらの測定値のタイムスタンプが現在となりマッピングがこれらの測定値に対する論理パーティションを生成し測定値を論理パーティションから対応する集計サブシステム512に送信するために利用可能になった場合のみ、処理し得る。   Similar to the splitting subsystem shown in FIG. 3, customer computer system 502 may further include a future viewing queue 506 that may be a separate undivided queue that is not associated with any aggregation subsystem 512. Metrics collection engine 504 may transfer measurements with future timestamps (eg, measurements with timestamps later than the most recent retention period) to future observation queue 506. This is because the metrics mapping registry 510 may not include a mapping for the logical partition aggregation subsystem 512 in the retention period that would include measurements having these timestamps. In this way, the metrics collection engine 504 sets the measured values of the future observation queue 506 to the logical partition for these measured values, with the time stamps of these measured values being current, and corresponding the measured values from the logical partition. It can only be processed when it becomes available for transmission to the aggregation subsystem 512.

代替実施形態では、メトリクス採集エンジン504は、未分割の測定値を、コンピューティングリソースモニタリングサービスの任意の数の集計サブシステム512に提供することができる。1つまたは複数の集計サブシステム512は、未分割の測定値を取得すると、メトリクスマッピングレジストリ510にアクセスして、測定値ごとのFQMI及びタイムスタンプに少なくとも部分的に基づいて、どの集計サブシステム512が未分割の測定値を保存するのに用いられるかを判定し得る。集計サブシステム512が、メトリクスマッピングレジストリ510の1つまたは複数のマッピングに少なくとも部分的に基づいて、未分割の測定値が別の集計サブシステムのメモリ内データストア内に保存されることを判定した場合、集計サブシステムは、これらの未分割の測定値を当該他の集計サブシステムに送信し得、次いで、当該他の集計サブシステムは、測定値をその1つまたは複数のメモリ内データストア内に保存し得る。   In alternative embodiments, the metrics collection engine 504 may provide undivided measurements to any number of aggregation subsystems 512 of the computing resource monitoring service. When one or more aggregation subsystems 512 obtain the undivided measurement, it accesses the metrics mapping registry 510 to determine which aggregation subsystem 512 based at least in part on the FQMI and timestamp for each measurement. Can be used to store undivided measurements. Aggregation subsystem 512 has determined that undivided measurements are stored in an in-memory data store of another aggregation subsystem based at least in part on one or more mappings in metric mapping registry 510. The aggregation subsystem may send these undivided measurements to the other aggregation subsystem, which then aggregates the measurements in its one or more in-memory data stores. Can be stored.

図6は、少なくとも一実施形態による、メタデータが測定値とともに提供されて、測定値の今後の保存を、さらなるメタデータの送信の必要なしに可能とする環境600の具体例を示す。環境600では、カスタマーコンピュータシステム602は、PUTリクエストをコンピューティングリソースモニタリングサービスに送信して、特定のメトリクスの測定値を1つまたは複数のデータセンタ606の集計サブシステム610内に保存し得る。PUTリクエストは、保存される測定値に加えて、測定値に対するメタデータ604を含み得る。このメタデータ604は、コンピューティングリソースモニタリングサービス内で関連する測定値を固有に識別し得る1つまたは複数のメトリクス属性を含み得る。例えば、メタデータ604は、PUTリクエストを送っているカスタマーコンピュータシステム602に関連するまたは測定値の生成に関与している別のコンピューティングリソースに関連するカスタマーのアカウント番号、コンピューティングリソースの管理に関与している特定のサービスの名前(例えば、仮想コンピュータシステムサービス、データベースサービスなど)、測定値のディメンション(例えば、キー/値のペア)及び測定値を生成しているコンピューティングリソースの識別子を、個々にまたは組み合わせて指定し得る。   FIG. 6 illustrates an example of an environment 600 in which metadata is provided with a measurement value and allows future storage of the measurement value without the need for further metadata transmission, according to at least one embodiment. In the environment 600, the customer computer system 602 may send a PUT request to a computing resource monitoring service to store specific metric measurements within the aggregation subsystem 610 of one or more data centers 606. The PUT request may include metadata 604 for the measurement values in addition to the stored measurement values. This metadata 604 may include one or more metric attributes that may uniquely identify relevant measurements within the computing resource monitoring service. For example, the metadata 604 is responsible for managing the customer account number associated with the customer computer system 602 sending the PUT request or associated with another computing resource involved in generating the measurement, computing resources. The specific service name (eg, virtual computer system service, database service, etc.), the measurement dimension (eg, key / value pair) and the identifier of the computing resource generating the measurement Or in combination.

コンピューティングリソースモニタリングサービスがカスタマーコンピュータシステム602から測定値及びメタデータ604を受信すると、コンピューティングリソースモニタリングサービスは、ハッシュ関数を用いて、保存される測定値に対するFQMIとして用いることができるメタデータ604のハッシュを生成し得る。さらに、コンピューティングリソースモニタリングサービスは、バイナリシリアライゼーションフォーマットを用いて、保存される測定値を圧縮し得る。このバイナリシリアライゼーションフォーマットで、シリアライズされた測定値は、メタデータ604をハッシュすることによって生成されたFQMI、測定値のタイムスタンプ、測定値に対する測定の単位及び測定値自体を含み得る。コンピューティングリソースモニタリングサービスが測定値をシリアライズされたフォーマットに変換すると、コンピューティングリソースモニタリングサービスは、測定値を各データセンタ606内の分割サブシステム608に送信し得る。分割サブシステム608は、受信した測定値のFQMI及びタイムスタンプならびに論理パーティションの集計サブシステム610に対するマッピングに指定されたような1つまたは複数の保持期間における特定のデータセンタ606内のいくつかのアクティブな集計サブシステム610に少なくとも部分的に基づいて、測定値の保存のために、複数の論理パーティションからある論理パーティションを判定し得る。分割サブシステム608は、メトリクスマッピングレジストリから取得された論理パーティションの集計サブシステム610に対するマッピングに応じて、論理パーティションに関連付けられたキューから、測定値を、データセンタ606内の集計サブシステム610に送信し得る。   When the computing resource monitoring service receives measurements and metadata 604 from the customer computer system 602, the computing resource monitoring service uses a hash function to determine the metadata 604 that can be used as an FQMI for the stored measurements. A hash can be generated. Further, the computing resource monitoring service may compress stored measurements using a binary serialization format. In this binary serialization format, the serialized measurement value may include the FQMI generated by hashing the metadata 604, the measurement time stamp, the unit of measurement for the measurement value, and the measurement value itself. Once the computing resource monitoring service has converted the measurements into a serialized format, the computing resource monitoring service may send the measurements to the split subsystem 608 in each data center 606. The splitting subsystem 608 may include several active FQMIs and timestamps of received measurements and a number of actives in a particular data center 606 in one or more retention periods as specified in the mapping to the logical partition aggregation subsystem 610. Based at least in part on the summary aggregation subsystem 610, a logical partition may be determined from the plurality of logical partitions for storage of measurements. The split subsystem 608 sends measurements from the queue associated with the logical partition to the aggregation subsystem 610 in the data center 606 in response to the mapping of the logical partition to the aggregation subsystem 610 obtained from the metrics mapping registry. Can do.

一実施形態では、コンピューティングリソースモニタリングサービスがメタデータ604をハッシュして、保存される測定値に対するFQMIを生成すると、カスタマーコンピュータシステム602は、メタデータ604が期限切れしていない限り、または、カスタマーコンピュータシステム602がコンピューティングリソースモニタリングサービスとの間に新規のセッションを開始していない限り、メトリクスの測定値を今後送信するためにメタデータ604を繰り返す必要がもはやなくなる。例えば、カスタマーコンピュータシステム602が、後の時点でさらなるPUTリクエストをコンピューティングリソースモニタリングサービスに送る場合、カスタマーコンピュータサービス602は、メタデータ604の代わりに、同一のメトリクスに対応する測定値に対するFQMI(例えば、メタデータハッシュ612)を提供し得る。コンピューティングリソースモニタリングサービスは、測定値をコンピューティングリソースモニタリングサービスのデータストア内に保存することを見越して、測定値及びFQMIをシリアライズし得る。あるいは、カスタマーコンピュータシステム602が測定値とともにFQMIを与えない場合、コンピューティングリソースモニタリングサービスは、メトリクスマッピングレジストリ内のメトリクスのエントリに少なくとも部分的に基づいて用いられるFQMIを、測定値及びメトリクスに少なくとも部分的に基づいて識別し得る。例えば、PUTリクエストが特定の時系列において連続する測定値を含む場合、コンピューティングリソースモニタリングサービスは、FQMIを、時系列において以前に取得された測定値に少なくとも部分的に基づいて判定し得る。これらの以前に取得された測定値は、コンピューティングリソースモニタリングサービスに対する測定値を保存する先のPUTリクエストを通して取得され得ている。この、先のPUTリクエストは、FQMIの生成元であるメタデータ604を含み得る。   In one embodiment, when the computing resource monitoring service hashes the metadata 604 to generate an FQMI for the stored measurements, the customer computer system 602 may provide the customer computer 604 unless the metadata 604 has expired or As long as the system 602 has not started a new session with the computing resource monitoring service, it is no longer necessary to repeat the metadata 604 to send metrics measurements in the future. For example, if the customer computer system 602 sends further PUT requests to the computing resource monitoring service at a later point in time, the customer computer service 602 replaces the metadata 604 with the FQMI (eg, for measurements corresponding to the same metric) , Metadata hash 612). The computing resource monitoring service may serialize the measurements and FQMI in anticipation of storing the measurements in the computing resource monitoring service data store. Alternatively, if the customer computer system 602 does not provide an FQMI along with the measurement, the computing resource monitoring service may use the FQMI that is used based at least in part on the entry of the metric in the metric mapping registry, at least partially in the measurement and the metric. Can be identified based on target. For example, if the PUT request includes measurements that are continuous in a particular time series, the computing resource monitoring service may determine the FQMI based at least in part on measurements previously obtained in the time series. These previously acquired measurements may have been acquired through a previous PUT request that stores the measurements for the computing resource monitoring service. This previous PUT request may include metadata 604 from which the FQMI is generated.

任意の時点で、カスタマーコンピュータシステム602は、GETリクエストを送って、コンピューティングリソースモニタリングサービスの1つまたは複数の集計サブシステム610から測定値を検索し得る。GETリクエストは、取得される測定値に対するメタデータ604を含み得る。コンピューティングリソースモニタリングサービスは、受信したメタデータ604をハッシュして、求められている測定値の位置を見つけるのに用いることができるFQMIを生成し得る。コンピューティングリソースモニタリングサービスは、GETリクエストを満たすのに必要な測定値を取得するために、FQMIとともにクエリをメトリクス統合エンジン614に送信し得る。クエリに応答して、メトリクス統合エンジン614は、メトリクスマッピングレジストリにアクセスして、GETリクエストを満たすのに必要な測定値がどこに保存されているかを判定し得る。メトリクス統合エンジン614は、メトリクスマッピングレジストリにアクセスし、測定値のFQMI及びタイムスタンプを用いて、どの集計サブシステム610がGETリクエストを満たすのに必要であるデータを有しているかを判定し得る。メトリクス統合エンジン614が、メトリクスマッピングレジストリによって提供された情報に少なくとも部分的に基づいて、測定値が保存されている集計サブシステム610の集計データストアを判定すると、メトリクス統合エンジン614は、各データセンタ606内の集計データストアにアクセスして、リクエストされた測定値を取得し得る。   At any point in time, customer computer system 602 may send a GET request to retrieve measurements from one or more aggregation subsystems 610 of the computing resource monitoring service. The GET request may include metadata 604 for the acquired measurement value. The computing resource monitoring service may hash the received metadata 604 to generate an FQMI that can be used to locate the sought measurement value. The computing resource monitoring service may send a query to the metrics integration engine 614 along with the FQMI to obtain the necessary measurements to satisfy the GET request. In response to the query, the metrics integration engine 614 may access the metrics mapping registry to determine where the measurements required to satisfy the GET request are stored. The metrics integration engine 614 may access the metrics mapping registry and use the measured FQMI and timestamp to determine which aggregation subsystem 610 has the data needed to satisfy the GET request. When the metrics integration engine 614 determines the aggregate data store of the aggregation subsystem 610 where the measurements are stored based at least in part on the information provided by the metrics mapping registry, the metrics integration engine 614 is responsible for each data center. The aggregated data store within 606 may be accessed to obtain the requested measurement.

上述のように、コンピューティングリソースモニタリングサービスは、オートスケールグループの1つまたは複数のコンピューティングリソースマネージャに対して測定値を利用可能にして、これらのコンピューティングリソースマネージャが、オートスケールグループ内でさらなるコンピューティングリソースが必要かどうかを、取得した測定値に少なくとも部分的に基づいて、迅速に判定することを可能にし得る。したがって、図7は、少なくとも一実施形態による、1つまたは複数のリソースの自動スケーリングが行われるかどうかを判定するのに、測定値の採集が用いられる環境700の具体例を示す。この例では、ネットワーク化された環境700は、ネットワーク706を介して、クライアントデバイス706及びサーバコンピュータ742とデータ通信しているコンピューティングリソースサービスプロバイダ704を含む。一実施形態では、サーバコンピュータ742は、インスタンス720(例えば、コンピューティングリソース)を実装するのに用いられる1つまたは複数のコンピュータハードウェアデバイスを備える。例えば、サーバコンピュータ742は、ストレージデバイス、仮想化ストレージデバイス、ネットワークデバイスなどのコンピューティングリソースのタイプを実装するハードウェアを含み得る。さらに、実装されたコンピューティングリソースは、分散型コンピューティングリソースサービスプロバイダ704のカスタマーによって、プログラムでかつ遠隔から管理され得る。   As described above, the computing resource monitoring service makes measurements available to one or more computing resource managers of the autoscale group, and these computing resource managers are further included in the autoscale group. It may be possible to quickly determine whether computing resources are needed based at least in part on the acquired measurements. Accordingly, FIG. 7 illustrates an example environment 700 in which measurement collection is used to determine whether automatic scaling of one or more resources is performed, according to at least one embodiment. In this example, networked environment 700 includes a computing resource service provider 704 that is in data communication with client device 706 and server computer 742 via network 706. In one embodiment, the server computer 742 comprises one or more computer hardware devices that are used to implement an instance 720 (eg, a computing resource). For example, the server computer 742 may include hardware that implements a type of computing resource such as a storage device, a virtualized storage device, a network device, and the like. Further, the implemented computing resources can be managed programmatically and remotely by customers of the distributed computing resource service provider 704.

サーバコンピュータ742は、コンピューティングリソースサービスプロバイダ704によって作成された1つまたは複数のインスタンス720をそれぞれが実行可能な複数のコンピュータシステムデバイスを含む。一実施形態では、サーバコンピュータ742はそれぞれ、プロセッサ、データストア、入出力バス及び/またはインスタンス720を実行する当技術分野で既知の任意の他のコンポーネントを含む。さらに、インスタンス720は、仮想マシンインスタンスであり得る。当技術分野で既知のように、仮想マシンインスタンスは、物理マシンのようにプログラムを実行するマシン(すなわち、コンピュータ)上のソフトウェア実装のインスタンスである。例えば、サーバコンピュータ742はそれぞれ、インスタンス720を実装可能なインスタンスマネージャ718を実行するように構成され得る。例えば、インスタンスマネージャ718は、ハイパーバイザー、仮想化層または単一のサーバコンピュータ742上で複数のインスタンス720の実行を可能にするように構成された別のタイプのプログラムであり得る。前述のように、インスタンス720はそれぞれ、アプリケーションの全部または一部を実行するように構成され得る。ネットワーク化された環境700は、互いから地理的に異なり得る1つまたは複数のデータセンタにわたるものであり得る。さらに、図7に示したネットワーク化された環境700は、コンピューティングリソースサービスプロバイダ704によって採用されるいくつかの実施形態の1つであり得る。   Server computer 742 includes a plurality of computer system devices each capable of executing one or more instances 720 created by computing resource service provider 704. In one embodiment, each server computer 742 includes a processor, data store, I / O bus, and / or any other component known in the art that executes instance 720. Further, the instance 720 can be a virtual machine instance. As is known in the art, a virtual machine instance is an instance of a software implementation on a machine (ie, a computer) that executes a program, such as a physical machine. For example, each server computer 742 may be configured to execute an instance manager 718 that can implement an instance 720. For example, the instance manager 718 can be a hypervisor, virtualization layer, or another type of program configured to allow multiple instances 720 to run on a single server computer 742. As described above, each instance 720 may be configured to run all or part of an application. Networked environment 700 may span one or more data centers that may be geographically different from each other. Further, the networked environment 700 shown in FIG. 7 may be one of several embodiments employed by the computing resource service provider 704.

一実施形態では、コンピューティングリソースサービスプロバイダ704は、ロードバランサデータベース710、インスタンスサービス712、配置サービス726、オートスケールサービス730、メンテナンスサービス732、コンピューティングリソースモニタリングサービス734、ロードバランシングサービス736及び/または他のコンポーネントを含む。ロードバランサデータベース710は、ロードバランサデータ742を含み得る。例えば、ロードバランサデータベース710は、オートスケールグループ702に関連するロードバランサ740の1つまたは複数のレコードを含み得る。ロードバランサデータ746のレコードはそれぞれ、ネットワーク化された環境700のロードバランサ740に対応し得る。   In one embodiment, the computing resource service provider 704 may include a load balancer database 710, an instance service 712, a placement service 726, an autoscale service 730, a maintenance service 732, a computing resource monitoring service 734, a load balancing service 736, and / or others. Contains the components. The load balancer database 710 can include load balancer data 742. For example, the load balancer database 710 may include one or more records of the load balancer 740 associated with the autoscale group 702. Each record of load balancer data 746 may correspond to a load balancer 740 of networked environment 700.

インスタンスサービス712は、カスタマーによって提供されたプリファレンスのセットに少なくとも部分的に基づいて、インスタンス720を作成する。一実施形態では、インスタンスサービス712は、クライアントデバイス706のカスタマーからリクエスト716を受信して、1つまたは複数のインスタンス732を作成し、作成されたインスタンス720を必要に応じてオートスケールグループ702に割り当てる。さらに、クライアントデバイス706のカスタマーから受信したリクエスト716は、リクエストされたインスタンス720の実行を開始する時間も示し得る。リクエストを受信したことに応答して、インスタンスサービス712は、インスタンス720を作成する。様々な実施形態では、オートスケールサービス730は、リクエストを受信しコマンドをインスタンスサービス712に送信してインスタンス720を作成し、インスタンスが、例えばオートスケールグループ702のメタデータをインスタンス720と関連付けることによって、オートスケールグループに関連付けられるようになる。一実施形態では、インスタンスサービス712は、クライアントデバイス706及び/またはオートスケールサービス730からのリクエストに応答して、インスタンスをスタンバイ状態にし得、または、オートスケールグループからインスタンスを切り離し得る。例えば、オートスケールサービス730は、リクエストをインスタンスサービス712に送信して、リクエスト716に応じてオートスケールグループ702から切り離されているインスタンス720に関連するオートスケールグループ702のメタデータを削除し得る。さらに、オートスケールサービス730は、ロードバランサ740から、切り離されたインスタンスをデアサインし得る。   The instance service 712 creates an instance 720 based at least in part on the set of preferences provided by the customer. In one embodiment, the instance service 712 receives a request 716 from a customer of the client device 706, creates one or more instances 732, and assigns the created instances 720 to the autoscale group 702 as needed. . In addition, the request 716 received from the customer of the client device 706 may also indicate the time to start executing the requested instance 720. In response to receiving the request, the instance service 712 creates an instance 720. In various embodiments, the autoscale service 730 receives the request and sends a command to the instance service 712 to create the instance 720, which associates the metadata of the autoscale group 702 with the instance 720, for example, Now associated with an autoscale group. In one embodiment, the instance service 712 may place the instance in a standby state or detach the instance from the autoscale group in response to a request from the client device 706 and / or the autoscale service 730. For example, the autoscale service 730 may send a request to the instance service 712 to delete the autoscale group 702 metadata associated with the instance 720 that has been detached from the autoscale group 702 in response to the request 716. Further, the autoscale service 730 can deassign the detached instance from the load balancer 740.

カスタマーは、コンピューティングリソースサービスプロバイダ704と(適切に構成かつ認証されたAPI呼び出しを介して)インタラクトして、サーバコンピュータ742上で作成されコンピューティングリソースサービスプロバイダ704によって運用されるオートスケールグループ702に関連するインスタンス720を提供し、運用しかつ管理し得る。さらに、カスタマーは、1つまたは複数のオートスケールグループ702を作成し得、オートスケールグループ702は、インスタンス720の論理集合であり得る。さらに、インスタンス720は、オートスケールグループ702に割り当てられ得、または、オートスケールグループ702のメンバーであり得る。オートスケールサービス730は、カスタマーが様々なオートスケールグループ702とインタラクトし、管理を行うことを可能にし得る。例えば、カスタマーは、オートスケールサービス730を通じて、オートスケールグループ702に対する最大容量または最小容量を設定し得る。次いで、オートスケールグループ702は、カスタマーによって提供された設定を維持するために、オートスケールグループに割り当てられたインスタンス720を管理し得る。様々な実施形態では、カスタマーは、コンピューティングリソースサービスプロバイダ704によって提供された管理コンソールを通じて、上記のようにオートスケールグループ702を作成し管理することができる。   The customer interacts with the computing resource service provider 704 (via an appropriately configured and authenticated API call) to create an autoscale group 702 that is created on the server computer 742 and operated by the computing resource service provider 704. Related instances 720 may be provided, operated and managed. Further, the customer may create one or more autoscale groups 702, which may be a logical set of instances 720. Further, instance 720 may be assigned to autoscale group 702 or may be a member of autoscale group 702. Autoscale service 730 may allow customers to interact with and manage various autoscale groups 702. For example, the customer may set a maximum or minimum capacity for the autoscale group 702 through the autoscale service 730. Autoscale group 702 may then manage instances 720 assigned to the autoscale group to maintain the settings provided by the customer. In various embodiments, a customer can create and manage an autoscale group 702 as described above through a management console provided by the computing resource service provider 704.

管理コンソールは、ウェブページとしてカスタマーに触れ得、ウェブページとインタラクト(例えば、ブラウザアプリケーションを通じて)することによって、カスタマーは、API呼び出しを生成させ得る。生成されたAPI呼び出しは、コンピューティングリソースサービスプロバイダ704またはそのコンポーネントに、カスタマーによって示された様々な動作を行わせ得る。カスタマーがオートスケールグループ702を作成すると、カスタマーは、リクエスト716を送ることによって、1つまたは複数のロードバランサをオートスケールグループ702に割り当て得る。この場合、リクエスト716は、オートスケールサービス730またはコンピューティングリソースサービスプロバイダ304の他のコンポーネントによって処理され得る。オートスケールグループ702のインスタンス720は、ウェブサイトをサポートするサーバとして動作するため、ビジネスアプリケーションを動作させるため、または一般に、カスタマーに対してコンピュータ処理能力として機能するためなどの様々な目的のために用いられ得る。インスタンス720の他の用途としては、データベースアプリケーション、電子商アプリケーション、ビジネスアプリケーション及び/または他のアプリケーションをサポートすることがあり得る。さらに、ロードバランサ740は、トラフィックをオートスケールグループ702の様々なインスタンス720に割り振って、上記の様々な目的のためのインスタンスの動作を可能にし、オートスケールグループ702のインスタンス720のオーバーロードを防ぎ得る。図7にはインスタンスサービス712を示しているが、仮想化またはインスタンス化を使用せず、代わりに、専用のまたは共用のコンピュータ/サーバ及び/または他の物理的デバイス上でコンピューティングリソースを提供するコンピュータシステムまたはコンピュータシステムサービスなどの、任意の他のコンピュータシステムまたはコンピュータシステムサービスが、コンピューティングリソースサービスプロバイダ702によって用いられ得る。   The management console can touch the customer as a web page, and by interacting with the web page (eg, through a browser application), the customer can cause an API call to be generated. The generated API call may cause the computing resource service provider 704 or its components to perform various actions indicated by the customer. When a customer creates an autoscale group 702, the customer may assign one or more load balancers to the autoscale group 702 by sending a request 716. In this case, request 716 may be processed by autoscale service 730 or other component of computing resource service provider 304. The instance 720 of the autoscale group 702 is used for a variety of purposes, such as operating as a server that supports a website, operating business applications, or generally functioning as computer processing power for a customer. Can be. Other uses for instance 720 may support database applications, e-commerce applications, business applications, and / or other applications. Further, the load balancer 740 may allocate traffic to the various instances 720 of the autoscale group 702 to enable instance operation for the various purposes described above and prevent overloading of the instances 720 of the autoscale group 702. . Although the instance service 712 is shown in FIG. 7, it does not use virtualization or instantiation, but instead provides computing resources on a dedicated or shared computer / server and / or other physical device. Any other computer system or computer system service may be used by the computing resource service provider 702, such as a computer system or computer system service.

配置サービス726は、インスタンス720を、サーバコンピュータ742の1つまたは複数に供給する。一実施形態では、配置サービス726は、新規のインスタンス720の示したオートスケールグループ702に少なくとも部分的に基づいて、新規のインスタンス720を供給するサーバコンピュータ742を判定する。例えば、配置サービス726は、インスタンス720を実行するのに適切な容量を有する1つまたは複数のサーバコンピュータ742を識別し得る。この目的のため、配置サービス726は、以下に記載するように、データストアに保存されたリソースデータ710から各サーバコンピュータ742の容量を判定し、それに応じて、インスタンス730を供給する。オートスケールサービス730は、インスタンス720をリクエストしたカスタマーによって定義された状況に少なくとも部分的に基づいて、以前リクエストされたインスタンス720の集合の容量を自動的にスケールアップまたはスケールダウンする。例えば、オートスケールサービス730は、デマンドが途切れている間、カスタマーに割り当てられたインスタンス720の数を減らし得、デマンドがピークの間、カスタマーに割り当てられたインスタンス720の数を増やし得る。   Deployment service 726 provides instance 720 to one or more of server computers 742. In one embodiment, the placement service 726 determines the server computer 742 that supplies the new instance 720 based at least in part on the indicated autoscale group 702 of the new instance 720. For example, the deployment service 726 may identify one or more server computers 742 that have the appropriate capacity to run the instance 720. For this purpose, the placement service 726 determines the capacity of each server computer 742 from the resource data 710 stored in the data store and supplies an instance 730 accordingly, as described below. The autoscale service 730 automatically scales up or down the capacity of a set of previously requested instances 720 based at least in part on the situation defined by the customer who requested the instance 720. For example, the autoscale service 730 may reduce the number of instances 720 assigned to a customer while demand is interrupted and may increase the number of instances 720 assigned to a customer during peak demand.

一実施形態では、オートスケールサービス730は、使用率が低いかつ/またはアイドル時間の期間中、リクエストされたインスタンス720のサブセットを削減する。例えば、オートスケールサービス730は、カスタマーによってリクエストされたインスタンス720の量が冗長であることかつ/または過度であることを判定し得る。これに応じて、オートスケールサービス730は、カスタマーに割り当てられた一定の数のインスタンス320を終了させ、カスタマーに割り当てられた残りの数のインスタンス720が冗長にならないようにかつ/または過度にならないようにし得る。別の実施形態では、オートスケールサービス730は、使用率が所定閾値を超えない場合、リクエストされたインスタンス730のサブセットを削減し得る。同様に、オートスケールサービス730は、高使用率の期間中、インスタンス320の量を増やす。一実施形態では、オートスケールサービス730は、使用率が所定閾値を超えた場合、インスタンス720の量を増やし得る。   In one embodiment, the autoscale service 730 reduces the subset of requested instances 720 during periods of low usage and / or idle time. For example, the autoscale service 730 may determine that the amount of instances 720 requested by the customer is redundant and / or excessive. In response, the autoscale service 730 terminates a certain number of instances 320 assigned to the customer and prevents the remaining number of instances 720 assigned to the customer from becoming redundant and / or excessive. Can be. In another embodiment, the autoscale service 730 may reduce the subset of requested instances 730 if the utilization does not exceed a predetermined threshold. Similarly, the autoscale service 730 increases the amount of instances 320 during periods of high usage. In one embodiment, the autoscale service 730 may increase the amount of instances 720 if the usage rate exceeds a predetermined threshold.

メンテナンスサービス732は、サーバコンピュータ742に対するメンテナンス、ソフトウェアの更新及び/またはファームウェアの更新をスケジュールする。一実施形態では、メンテナンスサービス732は、サーバコンピュータ742の利用可能容量に少なくとも部分的に基づいて、適切な時間に、メンテナンス及びソフトウェアの更新をスケジュールする。例えば、メンテナンスサービス732は、それぞれのサーバコンピュータ742が計画された利用可能性を有するときに、メンテナンス及びソフトウェアの更新をスケジュールし得る。一実施形態では、メンテナンスサービス732は、サーバコンピュータ742がいずれのインスタンス720もホストしていないと判定すると、サーバコンピュータ742にパッチを適用し再起動し得る。さらに、メンテナンスサービス732は、仮想マシンそれぞれに関連する新規のイメージをインスタンス化するのに先立って、必要であれば、インスタンス742に関連する仮想マシンにパッチを適用し得る。例えば、メンテナンスサービス732は、インスタンス720のヘルスステータスに少なくとも部分的に基づいて、マシンイメージのパッチをスケジュールし得る。一実施形態では、スケジュールされたメンテナンスが完了するまで、追加のインスタンスはサーバコンピュータ742に提供され得ない。   The maintenance service 732 schedules maintenance, software update, and / or firmware update for the server computer 742. In one embodiment, maintenance service 732 schedules maintenance and software updates at appropriate times based at least in part on the available capacity of server computer 742. For example, the maintenance service 732 may schedule maintenance and software updates when each server computer 742 has planned availability. In one embodiment, if the maintenance service 732 determines that the server computer 742 is not hosting any instances 720, it may apply a patch to the server computer 742 and restart. Further, maintenance service 732 may patch virtual machines associated with instance 742, if necessary, prior to instantiating a new image associated with each virtual machine. For example, the maintenance service 732 may schedule a machine image patch based at least in part on the health status of the instance 720. In one embodiment, additional instances cannot be provided to server computer 742 until scheduled maintenance is complete.

メンテナンスサービス732は、オートスケールグループ702及び/またはロードバランサ740に割り当てられたインスタンスを含むインスタンス720のヘルスステータスも周期的にまたは非周期的にチェックし得る。ヘルスチェックは、中央処理装置、メモリ、ネットワーキングインタフェース、オペレーティングシステム、アプリケーション及びインスタンス720の他のコンポーネントなどのインスタンス720の様々なコンポーネントの負荷、稼働率及び動作を判定することを含み得る。様々な実施形態では、メンテナンスサービス732が、ヘルスチェックに少なくとも部分的に基づいてインスタンス720がアンヘルシーであると判定すると、メンテナンスサービス732またはオートスケールサービス730などのサービスプロバイダ704の他のコンポーネントは、アンヘルシーなインスタンスをオートスケールグループ702から削除するワークフローを開始し得る。さらに、メンテナンスサービス732が、以前アンヘルシーであったインスタンス720がヘルシーステータスに戻ったと判定した場合、メンテナンスサービス732またはオートスケールサービス730などのサービスプロバイダ704の他のコンポーネントは、インスタンス720をサービス内に移動させ得、または、インスタンス720をオートスケールグループ702にアタッチし得る。さらに、ロードバランサ740に割り当てられたインスタンス722がヘルシーステータスに戻った場合、上記のように、オートスケールグループ702は、ロードバランサ740の状態を稼働中へと更新し得る。   Maintenance service 732 may also periodically or aperiodically check the health status of instances 720 including instances assigned to autoscale group 702 and / or load balancer 740. The health check may include determining the load, utilization and operation of various components of the instance 720, such as the central processing unit, memory, networking interface, operating system, applications and other components of the instance 720. In various embodiments, once the maintenance service 732 determines that the instance 720 is healthy based at least in part on the health check, other components of the service provider 704, such as the maintenance service 732 or the autoscale service 730, A workflow may be initiated that deletes the healthy instance from the autoscale group 702. Further, if the maintenance service 732 determines that the instance 720 that was previously healthy has returned to a healthy status, other components of the service provider 704, such as the maintenance service 732 or the autoscale service 730, bring the instance 720 into service. It can be moved, or the instance 720 can be attached to the autoscale group 702. Further, when the instance 722 assigned to the load balancer 740 returns to a healthy status, the autoscale group 702 may update the state of the load balancer 740 to operational as described above.

コンピューティングリソースモニタリングサービス734は、インスタンス720に対応するリソースデータの収集に関与し得る。コンピューティングリソースモニタリングサービス734によって取得されたリソースデータは、中央処理装置、メモリ、ネットワーキングインタフェース、オペレーティングシステム、アプリケーション及びインスタンス720の他のコンポーネントなどの、インスタンス720の様々なコンポーネントの使用率を示し得る。この情報は、各種の様々な目的、例えば、リソースをオートスケールグループ702に割り当てるか割当てを解除するかを判定するために用いられ得る。さらに、この情報は、メンテナンスサービス732によって、インスタンス720及び/またはサーバコンピュータ742のヘルスを判定するのに用いられ得る。コンピューティングリソースモニタリングサービス734は、オートスケールグループ702に割り当てられたインスタンス720の全てに対する使用率の情報を取得し、集計し得る。   The computing resource monitoring service 734 may be responsible for collecting resource data corresponding to the instance 720. Resource data obtained by the computing resource monitoring service 734 may indicate utilization of various components of the instance 720, such as a central processing unit, memory, networking interface, operating system, applications, and other components of the instance 720. This information can be used to determine a variety of different purposes, for example, whether to assign or deallocate resources to the autoscale group 702. Further, this information can be used by the maintenance service 732 to determine the health of the instance 720 and / or the server computer 742. The computing resource monitoring service 734 may obtain and aggregate usage information for all of the instances 720 assigned to the autoscale group 702.

一実施形態では、コンピューティングリソースモニタリングサービス734は、オートスケールグループ702のインスタンス720に対する1つまたは複数のロードバランサ740から、1つまたは複数のPUTリクエストを取得して、1つまたは複数のインスタンス720に対する測定値を、コンピューティングリソースモニタリングサービス734の1つまたは複数のメモリ内データストア内に保存する。各PUTリクエストは、測定値のメトリクス属性を指定している測定値ごとのメタデータを含み得る。コンピューティングリソースモニタリングサービス734は、フロントエンドサーバを通じて、ロードバランサ740から測定値及びメタデータを取得し得る。フロントエンドサーバは、メタデータ及びハッシュ関数を用いて、コンピューティングリソースモニタリングサービス734の集計データストア内に保存される測定値に対するFQMIを生成し得る。さらに、フロントエンドサーバは、測定値を、サービス734の1つまたは複数のデータセンタ内の分割サブシステムに発行するために、シリアライズされたフォーマットに変換し得る。フロントエンドサーバは、インスタンス720のシリアライズされた測定値を分割サブシステムに送信し得る。   In one embodiment, the computing resource monitoring service 734 obtains one or more PUT requests from one or more load balancers 740 for the instances 720 of the autoscale group 702 to obtain one or more instances 720. The measurements for are stored in one or more in-memory data stores of the computing resource monitoring service 734. Each PUT request may include metadata for each measurement that specifies the metrics attribute of the measurement. The computing resource monitoring service 734 may obtain measurements and metadata from the load balancer 740 through the front end server. The front end server may use the metadata and hash function to generate an FQMI for the measurements stored in the aggregate data store of the computing resource monitoring service 734. Further, the front end server may convert the measurements into a serialized format for publishing to the split subsystem in one or more data centers of service 734. The front-end server may send the serialized measurements of instance 720 to the split subsystem.

分割サブシステムは、測定値のFQMI及びタイムスタンプに少なくとも部分的に基づいて、複数の論理パーティションのうちどの論理パーティションが測定値を保存するのに用いられるのかを判定し得る。分割サブシステムは、メトリクスマッピングレジストリにアクセスし得る。このメトリクスマッピングレジストリは、論理パーティションの、1つまたは複数の保持期間においてアクティブである集計サブシステムに対するマッピングを提供し得る。このことによって、分割サブシステが、GETリクエストを処理するために、コンピューティングリソースモニタリングサービス734のどの集計サブシステムに測定値が保存されるのかを判定することが可能になり得る。分割サブシステムは、単一の集計サブシステムに結び付けられた、選択された論理パーティションに関連するファイルベースのキュー内に測定値を保存し得る。   The splitting subsystem may determine which logical partition of the plurality of logical partitions is used to store the measurement based at least in part on the FQMI and timestamp of the measurement. The split subsystem can access the metrics mapping registry. This metric mapping registry may provide a mapping of the logical partition to the aggregation subsystem that is active in one or more retention periods. This may allow the splitting subsystem to determine in which aggregation subsystem of the computing resource monitoring service 734 the measurements are stored for processing GET requests. The split subsystem may store measurements in a file-based queue associated with a selected logical partition that is associated with a single aggregation subsystem.

コンピューティングリソースモニタリングサービス734の集計サブシステムが分割サブシステムから測定値を取得すると、集計サブシステムは、同一の集計期間における同一のメトリクスの測定値が集計データストア内に保存されているかどうかを判定し得る。保存されている場合、集計データストアは、特定のメトリクスの測定値を集計するために、保存されている測定値及び分割サブシステムからの測定値をデシリアライズし得る。集計データストアは、2つの測定値のセットの集計の結果を取得し、集計した測定値を上記のバイナリシリアライゼーションフォーマットを用いてシリアライズし得る。集計された測定値がシリアライズされると、集計データストアは、これらの測定値を、データストアの1つまたは複数のストレージデバイス内に保存し、最近の測定値の保存が成功したという通知をメトリクス処理エンジン404に送信し得る。あるいは、測定値が集計期間中に観察されたのが初めてである場合、測定値は、デシリアライズの必要なしに、単に集計データストア内に保存され得る。   When the aggregation subsystem of the computing resource monitoring service 734 acquires measurements from the split subsystem, the aggregation subsystem determines whether measurements for the same metric for the same aggregation period are stored in the aggregation data store. Can do. If stored, the aggregate data store may deserialize stored measurements and measurements from the split subsystem to aggregate measurements for a particular metric. The aggregate data store may obtain the result of the aggregation of the two measurement value sets and serialize the aggregated measurement values using the binary serialization format described above. When the aggregated measurements are serialized, the aggregate data store stores these measurements in one or more storage devices of the data store and metrics that the recent measurements have been saved successfully. It can be sent to the processing engine 404. Alternatively, if it is the first time that a measurement value has been observed during the aggregation period, the measurement value can simply be stored in the aggregation data store without the need for deserialization.

一実施形態では、コンピューティングリソースモニタリングサービス734のフロントエンドサーバは、さらに、特定の期間が経過した後に、かつ/または特定のメトリクスの測定値のスパイクなどのトリガとなるイベントに応答して、測定値が集計されるとすぐに、様々なメトリクスの測定値をオートスケールグループ702の1つまたは複数のインスタンスマネージャ718に提供するように構成されている。メトリクスマッピングレジストリは、オートスケールグループ702のインスタンス720に対する1つまたは複数のエントリを保持し得、これは、保持期間ごとに、これらのインスタンス720に対する測定値を含むコンピューティングリソースモニタリングサービス734の様々なデータセンタ内の集計データストアを指定し得る。さらに、コンピューティングリソースモニタリングサービス734のメトリクス統合エンジンは、メトリクスマッピングレジストリに周期的にアクセスして、これらの測定値を含むこれらの集計データストアを識別するように構成され得る。このことによって、メトリクス統合エンジンが、これらのインスタンス720に対する測定値を取得し測定値をフロントエンドサーバに提供することが可能になり得る。フロントエンドサーバは、測定値を、オートスケールグループ702の1つまたは複数のインスタンスマネージャ718に送信して、インスタンスマネージャ718が、それに応じて、インスタンス720を自動的にスケーリングすることを可能にし得る。一部の例では、1つまたは複数のインスタンスマネージャ718は、代わりにGETリクエストをコンピューティングリソースモニタリングサービス734に送信し得、コンピューティングリソースモニタリングサービス734は、上記の処理を行って1つまたは複数のインスタンス720に対するリクエストされた測定値を取得することによって、GETリクエストを満たし得る。   In one embodiment, the front-end server of the computing resource monitoring service 734 may further measure after a specific period of time and / or in response to a triggering event, such as a spike in a measurement of a specific metric. As soon as the values are aggregated, various metrics measurements are configured to be provided to one or more instance managers 718 of the autoscale group 702. The metrics mapping registry may maintain one or more entries for instances 720 of the autoscale group 702, which for each retention period includes various values of the computing resource monitoring service 734 that include measurements for these instances 720. An aggregate data store within the data center may be specified. Further, the metrics integration engine of the computing resource monitoring service 734 may be configured to periodically access the metrics mapping registry to identify those aggregate data stores that contain these measurements. This may allow the metrics integration engine to obtain measurements for these instances 720 and provide the measurements to the front-end server. The front-end server may send the measurements to one or more instance managers 718 in the autoscale group 702, allowing the instance manager 718 to automatically scale the instance 720 accordingly. In some examples, one or more instance managers 718 may instead send a GET request to the computing resource monitoring service 734, which performs one or more of the above processes. The GET request may be satisfied by obtaining the requested measurement for the instance 720 of.

一実施形態では、オートスケールグループ702の1つまたは複数のインスタンスマネージャ718がフロントエンドサーバから測定値を取得すると、1つまたは複数のインスタンスマネージャ718は、オートスケールグループ702の1つまたは複数のインスタンス720のいずれかの修正を行うかどうかを判定することができる。例えば、1つまたは複数のインスタンスマネージャ718は、特定のインスタンス720に対する取得した測定値に部分的に基づいて、インスタンスタイプを変更して、取得した測定値によってハイライトされた問題に対応し得る。例えば、1つまたは複数のインスタンスマネージャ718が、測定値に少なくとも部分的に基づいて、特定のインスタンス720がさらなる処理能力及びメモリを必要としていると判定した場合、1つまたは複数のインスタンスマネージャ718は、より大きい処理能力及びメモリをもたらすインスタンスを供給し得、したがって、1つまたは複数のインスタンスマネージャ718が、インスタンスアセットを元のインスタンスからこの新たに供給されたインスタンスに転送することを可能にする。   In one embodiment, when one or more instance managers 718 of autoscale group 702 obtain measurements from a front-end server, one or more instance managers 718 may use one or more instances of autoscale group 702. It can be determined whether any of the corrections of 720 are performed. For example, one or more instance managers 718 may change the instance type based on acquired measurements for a particular instance 720 to address the problem highlighted by the acquired measurements. For example, if one or more instance managers 718 determine that a particular instance 720 requires additional processing power and memory based at least in part on the measurements, the one or more instance managers 718 may Can provide an instance that results in greater processing power and memory, thus allowing one or more instance managers 718 to transfer instance assets from the original instance to this newly provisioned instance.

1つまたは複数のインスタンスマネージャ718は、特定の期間にわたる測定値の評価が終わった後に、1つまたは複数のインスタンス720の修正を行い得る。例えば、特定の保持期間における取得された測定値が、オートスケールグループ702を自動的にスケールする必要性を示している場合(例えば、インスタンス720の追加、インスタンス720の削除、既存のインスタンス720の修正など)、1つまたは複数のインスタンスマネージャ718は、さらなる保持期間における測定値を取得し評価するまで、オートスケールグループ702の修正を待ち得る。例えば、後続の保持期間における測定値がオートスケールグループ702のいかなる修正も行う必要がないことを示した場合、オートスケールグループ702を自動的にスケールする必要性を示す測定値を例外的とみなし得るので、1つまたは複数のインスタンスマネージャ718は、これらの修正を行わなくてもよい。   One or more instance managers 718 may make modifications to one or more instances 720 after the evaluation of measurements over a particular time period is over. For example, if the measurements taken at a particular retention period indicate the need to automatically scale the autoscale group 702 (eg, add instance 720, delete instance 720, modify existing instance 720) Etc.) One or more instance managers 718 may await modification of the autoscale group 702 until measurements are taken and evaluated in further retention periods. For example, a measurement that indicates the need to automatically scale the autoscale group 702 may be considered exceptional if measurements in subsequent retention periods indicate that no correction of the autoscale group 702 needs to be made. As such, one or more instance managers 718 may not make these modifications.

ロードバランシングサービス736は、カスタマーのインスタンス720によるリクエスト処理を容易にするために、コンピューティングリソースサービスプロバイダ704のカスタマーに提供され得る。様々な実施形態では、インスタンス720は、オートスケールグループ702に割り当てられ得、ロードバランササービス736は、トラフィックを、オートスケールグループ702に割り当てられたインスタンス722に割り振り得る。例えば、カスタマーは、コンピューティングリソースサービスプロバイダ704のリソースを使用してオートスケールグループ702に割り当てられたインスタンス720を用いてウェブサイトを動作させ得る。さらに、ウェブサイトは、ネットワーク706を介して、複数の他のカスタマーからリクエストを受信し得る。コンピューティングリソースサービスプロバイダ704は、ロードバランシングサービス736のロードバランサを構成して、リクエストの処理によって生じる負荷が、ウェブサイトを実行しているオートスケールグループ702のインスタンス720間で分散されるように、ウェブサイトを実行しているオートスケールグループ702のインスタンス720にリクエストを案内し得る。ロードバランシングサービス736は、リソース使用率を最適化しかつ/または特定のサーバコンピュータ742のオーバーロードを回避するために、リクエストを、ロードバランサに割り当てられたインスタンス720に割り振るように構成されたコンピュータシステムまたは仮想コンピュータシステムであり得る。例えば、ロードバランサは、サーバラックに接続されているかそうでなければデータセンタに含まれている物理的なハードウェアを含み得る。別の例では、ロードバランサは、サーバコンピュータ742によってサポートされる1つまたは複数の仮想マシンを含み得る。   A load balancing service 736 may be provided to a customer of the computing resource service provider 704 to facilitate request processing by the customer instance 720. In various embodiments, instance 720 may be assigned to autoscale group 702 and load balancer service 736 may allocate traffic to instance 722 assigned to autoscale group 702. For example, a customer may operate a website with an instance 720 assigned to an autoscale group 702 using the resources of a computing resource service provider 704. In addition, the website may receive requests from multiple other customers over network 706. The computing resource service provider 704 configures a load balancer for the load balancing service 736 so that the load caused by processing the request is distributed among the instances 720 of the autoscale group 702 running the website. The request may be directed to the instance 720 of the autoscale group 702 running the website. A load balancing service 736 may be a computer system configured to allocate requests to an instance 720 assigned to a load balancer to optimize resource utilization and / or avoid overloading a particular server computer 742. It can be a virtual computer system. For example, a load balancer may include physical hardware that is connected to a server rack or otherwise included in a data center. In another example, the load balancer may include one or more virtual machines supported by the server computer 742.

上述のように、コンピューティングリソースモニタリングサービスは、様々なメトリクスの測定値を発行するためのエントリポイントとして機能し得る1つまたは複数の分割サブシステムを含み得る。分割サブシステムは、フロントエンドサーバから測定値を取得し、これらの測定値を、測定値ごとのFQMI及びタイムスタンプならびにメトリクスマッピングレジストリによって提供されるようないくつかの集計サブシステムに少なくとも部分的に基づいて、論理パーティション内に分け得る。分割サブシステムは、これらの測定値を、メトリクスマッピングレジストリのマッピングに少なくとも部分的に基づいて、様々な集計サブシステムに提供し得る。したがって、図8は、少なくとも一実施形態による、メトリクスの測定値を、1つまたは複数の集計サブシステムに配信するために分割するプロセス800の具体例を示す。プロセス800は、コンピューティングリソースモニタリングサービスのフロントエンドサーバによって行われ得、このフロントエンドサーバは、様々なコンピューティングリソース及び/またはカスタマーコンピュータシステムから測定値を取得し得、コンピューティングリソースモニタリングサービスの上記分割サブシステムに測定値を提供するに先立って動作を行うものである。この分割サブシステムは、プロセス800の様々な動作を行い得るものである。   As described above, the computing resource monitoring service may include one or more split subsystems that may serve as entry points for issuing various metrics measurements. The splitting subsystem obtains measurements from the front-end server, and these measurements are at least partially in several aggregation subsystems as provided by the per-measurement FQMI and timestamp and metric mapping registries. Based on, it can be divided into logical partitions. The splitting subsystem may provide these measurements to various aggregation subsystems based at least in part on the mapping of the metrics mapping registry. Accordingly, FIG. 8 illustrates an example of a process 800 for dividing a metric measurement for distribution to one or more aggregation subsystems, according to at least one embodiment. Process 800 may be performed by a front end server of a computing resource monitoring service, which may obtain measurements from various computing resources and / or customer computer systems, and the above of the computing resource monitoring service. Acts prior to providing measurements to the split subsystem. This split subsystem is capable of performing various operations of process 800.

任意の時点で、フロントエンドサーバは、カスタマーコンピュータシステムまたは他のコンピューティングリソースから、PUT API呼び出しを受信802して、測定値を集計データストア内にメモリ内保存するために、測定値を集計サブシステム内に発行し得る。PUT API呼び出しは、保存される測定値及び特定の測定値に対するメタデータを含み得る。メタデータは、測定値に対する1つまたは複数のメトリクス属性を指定し得る。例えば、メタデータは、カスタマーのアカウント番号、名前空間(例えば、コンピューティングリソースに対する関連サービス)、測定値のディメンション(例えば、キー/値のペア)、測定値自体の名前などの組み合わせによって、測定値を固有に識別し得る。このようにして、フロントエンドサーバは、PUT API呼び出しから、コンピューティングリソースモニタリングサービスの集計データストア内にメモリ内保存される測定値を取得804し得る。   At any given time, the front-end server receives 802 a PUT API call from the customer computer system or other computing resource and aggregates the measured values to store the measured values in memory in the aggregated data store. Can be issued in the system. The PUT API call may include stored measurements and metadata for specific measurements. The metadata may specify one or more metric attributes for the measurement value. For example, metadata can be measured by a combination of customer account number, namespace (eg, related services for computing resources), measurement dimensions (eg, key / value pairs), name of the measurement itself, etc. Can be uniquely identified. In this manner, the front-end server may obtain 804 measurements stored in memory in the aggregate data store of the computing resource monitoring service from the PUT API call.

フロントエンドサーバがPUT API呼び出しから測定値を取得すると、フロントエンドサーバは、ハッシュ関数及び提供されたメタデータを用いて、測定値に対するFQMIを生成し得る。このFQMIは、複数バイトのハッシュを含み得、このハッシュの一部は、メトリクスマッピングレジストリ内のマッピングに少なくとも部分的に基づいて、測定値のメトリクスごとに論理パーティションを判定するのに用いられ得、このハッシュの別の一部は、対応する論理パーティション内にかつて配置された測定値の固有の識別に用いられ得る。フロントエンドサーバは、さらに、測定値をバイナリシリアライゼーションフォーマットに変換し得る。このフォーマットの測定値は、FQMI、測定値のタイムスタンプ、測定値に対する測定の単位及び測定値自体を含み得る。フロントエンドサーバは、このシリアライズされた測定値を、測定値の冗長的な保存のために、コンピューティングリソースモニタリングサービスの各データセンタ内の分割サブシステムに送信し得る。各データセンタ内の分割サブシステムは、分割ロードバランサを用いて選択され得る。   When the front-end server obtains the measurement value from the PUT API call, the front-end server may generate an FQMI for the measurement value using the hash function and the provided metadata. The FQMI may include a multi-byte hash, a portion of the hash may be used to determine a logical partition for each metric of the measurement based at least in part on the mapping in the metric mapping registry; Another part of this hash can be used to uniquely identify measurements once placed in the corresponding logical partition. The front-end server may further convert the measurement value to a binary serialization format. Measurements in this format may include FQMI, measurement timestamp, measurement unit for the measurement, and measurement itself. The front-end server may send this serialized measurement to a split subsystem within each data center of the computing resource monitoring service for redundant storage of the measurement. The split subsystem within each data center may be selected using a split load balancer.

分割サブシステムがフロントエンドサーバからシリアライズされた測定値を受信すると、分割サブシステムは、測定値のFQMI及びタイムスタンプを判定806し得る。分割サブシステムは、メトリクスマッピングレジストリにアクセス808して、論理パーティションの様々な集計サブシステムに対するマッピングを取得して、測定値の配置のためにかつ集計サブシステムへの配信のために、どの論理パーティションが用いられるかを判定し得る。例えば、分割サブシステムは、シリアライズされた測定値のFQMI及びタイムスタンプを用いて、マッピングに少なくとも部分的に基づいて、測定値を配置するのはどの論理パーティションかを識別し得る。   When the split subsystem receives the serialized measurement from the front end server, the split subsystem may determine 806 the FQMI and timestamp of the measurement. The splitting subsystem accesses metric mapping registry 808 to obtain mappings of the logical partitions to the various aggregation subsystems, and to determine which logical partition for placement of measurements and distribution to the aggregation subsystem. Can be determined. For example, the split subsystem may use the serialized measurement FQMI and time stamp to identify which logical partition to place the measurement based at least in part on the mapping.

一実施形態では、分割サブシステムは、タイムスタンプ及びマッピングを用いて、測定値が、マッピングに指定されたような最近の保持期間を過ぎている期間にあるかどうかを判定810する。測定値が未来のタイムスタンプを含む(例えば、タイムスタンプが最近の保持期間を過ぎている時間にある)場合、分割サブシステムは、測定値を、別個の未分割のキューの待ち行列に入れ得る812。ここで、測定値は、測定値のタイムスタンプが後の時点で現在の保持期間によってカバーされるまで、残り得る。保持期間が更新されると、分割サブシステムは、測定値をこのキューから取得し、測定値のタイムスタンプが現在の保持期間によってカバーされるかどうかを判定し得る。カバーされない場合、測定値は、キューに残り得る。   In one embodiment, the splitting subsystem uses a timestamp and mapping to determine 810 whether the measurement is in a period that has passed a recent retention period as specified in the mapping. If the measurement contains a future timestamp (eg, at a time when the timestamp has passed the most recent retention period), the split subsystem may queue the measurement into a separate unsplit queue. 812. Here, the measurement value may remain until the measurement time stamp is covered by the current retention period at a later time. When the retention period is updated, the split subsystem may obtain the measurement value from this queue and determine whether the measurement time stamp is covered by the current retention period. If not covered, measurements may remain in the queue.

測定値のタイムスタンプが現在の保持期間中である場合、分割サブシステムは、測定値を、タイムスタンプ、FQMI及びマッピングに少なくとも部分的に基づいて判定されたように、分割サブシステムの複数の論理パーティションのうちのある論理パーティション内に配置し得る。各論理パーティションは、特定のキューに関連付けられ得、このキューは、測定値を分割サブシステムから、マッピングを用いて判定されたような対応する集計サブシステムに送信するのに用いられ得る。このようにして、測定値が論理パーティションに配置されると、分割サブシステムは、測定値を、対応する集計サブシステムに結び付けられた関連するファイルベースのキュー内に移動814させ得る。このキュー内の測定値は、測定値ごとのタイムスタンプに少なくとも部分的に基づいて、最新の測定値の配信が第1に完了され得るように、分割され得る。このようにして、測定値のこの分割に基づいて、分割サブシステムは測定値のメモリ内保存のために、測定値をキューから対応する集計サブシステムに非同期的に配信816し得る。   If the measurement timestamp is within the current retention period, the splitting subsystem may determine whether the measurement is determined based at least in part on the timestamp, FQMI, and mapping. It can be located in one of the partitions. Each logical partition may be associated with a particular queue, which may be used to send measurements from the split subsystem to the corresponding aggregation subsystem as determined using the mapping. In this way, once the measurements are placed in the logical partition, the splitting subsystem may move 814 the measurements into the associated file-based queue associated with the corresponding aggregation subsystem. Measurements in this queue may be split based on at least in part on a time stamp for each measurement such that distribution of the latest measurement may be completed first. In this way, based on this partitioning of the measurement values, the partitioning subsystem may asynchronously distribute 816 the measurement values from the queue to the corresponding aggregation subsystem for storage of the measurement values in memory.

上述のように、分割サブシステムは、シリアライズされた測定値を、メトリクスの測定値をリアルタイムで集計し各種メトリクスに対する時系列の測定値を与えるように構成された1つまたは複数の集計サブシステムに送信し得る。集計サブシステムは、測定値を1つまたは複数の集計データストア内に保存すること及びこれらの測定値をカスタマーコンピュータシステム及び他のエンティティからのGETリクエストを満たすのに利用可能にすることという上記のタスクを行うように集合的に構成された1つまたは複数のコンピュータシステムを含み得る。したがって、図9は、少なくとも一実施形態による、1つまたは複数の分割サブシステムの測定値をコンピューティングリソースモニタリングサービスの1つまたは複数のデータストアの測定値と集計するプロセス900の具体例を示す。プロセス900は、コンピューティングリソースモニタリングサービスの任意の集計サブシステムによって行われ得、この集計サブシステムは、分割サブシステムからの測定値を処理し、測定値を1つまたは複数のメモリ内データストアに保存するように構成され得る。   As described above, the split subsystem provides serialized measurements to one or more aggregation subsystems configured to aggregate metrics measurements in real time and provide time series measurements for various metrics. Can be sent. The aggregation subsystem is described above that stores measurements in one or more aggregation data stores and makes these measurements available to satisfy GET requests from customer computer systems and other entities. One or more computer systems may be included that are collectively configured to perform the task. Accordingly, FIG. 9 illustrates an example process 900 for aggregating measurements of one or more partitioned subsystems with measurements of one or more data stores of a computing resource monitoring service, according to at least one embodiment. . Process 900 may be performed by any aggregation subsystem of the computing resource monitoring service that processes measurements from the split subsystem and places the measurements in one or more in-memory data stores. Can be configured to save.

保持期間中の任意の時点で、集計サブシステムは、分割サブシステムから新規のシリアライズされた測定値を受信902し得る。図8に関連して上記したように、分割サブシステムは、1つまたは複数のファイルベースのキューを含み得、このキューは、データを、データセンタ内の1つまたは複数の集計サブシステムに非同期的に送信するように構成され得る。各キューは、メトリクスマッピングレジストリ内に含まれている所与の保持期間に対するマッピングに少なくとも部分的に基づいて、単一の集計サブシステムに関連付けられ得る。受信した測定値のFQMI及びタイムスタンプに少なくとも部分的に基づいて、集計サブシステムは、受信した測定値を保存するために特定のメモリ内データストアを識別し得る。   At any point during the retention period, the aggregation subsystem may receive 902 new serialized measurements from the split subsystem. As described above in connection with FIG. 8, a split subsystem may include one or more file-based queues that asynchronously send data to one or more aggregation subsystems in the data center. Can be configured to transmit automatically. Each queue may be associated with a single aggregation subsystem based at least in part on the mapping for a given retention period contained within the metrics mapping registry. Based at least in part on the FQMI and timestamp of the received measurement, the aggregation subsystem may identify a particular in-memory data store to store the received measurement.

集計サブシステムが、取得した測定値を保存するためにメモリ内データストアを識別すると、集計サブシステムは、集計サブシステムが集計期間において特定のメトリクスの測定値に遭遇したのが初めてであるかどうかを判定904し得る。集計サブシステムが集計期間中このメトリクスの測定値を観察したのはこれが初めてである場合、集計サブシステムは、シリアライズされた測定値を、識別されたメモリ内データストア内に保存912し得る。しかし、集計サブシステムが、集計期間においてメトリクスに対する他の測定値が、識別されたメモリ内データストア内に保存されていると判定した場合、集計サブシステムは、これらの他のシリアライズされた測定値をメモリ内データストアから取得906し得る。   When the aggregation subsystem identifies an in-memory data store to store the acquired measurements, the aggregation subsystem is the first time that the aggregation subsystem encounters a specific metric measurement during the aggregation period Can be determined 904. If this is the first time that the aggregation subsystem has observed a measurement of this metric during the aggregation period, the aggregation subsystem may save 912 the serialized measurement in an identified in-memory data store. However, if the aggregation subsystem determines that other measurements for the metric are stored in the identified in-memory data store during the aggregation period, the aggregation subsystem will determine these other serialized measurements. May be obtained 906 from an in-memory data store.

集計サブシステムは、測定値の集計のために、分割サブシステムからの新規に取得されたシリアライズされた測定値及びメモリ内データストアからの他のシリアライズされた測定値をデシリアライズ908し得る。集計サブシステムが、新規に取得されたシリアライズされた測定値及びメモリ内データストアからの測定値をデシリアライズすると、集計サブシステムは、分割サブシステムからの新規に取得されたシリアライズされた測定値を、メモリ内データストア内に以前保存されたメトリクスの他の測定値と集計910し得る。この集計は、集計された測定値を上記のバイナリシリアライゼーションフォーマットにシリアライズすることを含み得る。集計サブシステムが測定値を集計しシリアライズすると、集計サブシステムは、シリアライズされた測定値をメモリ内データストア内に保存912し得る。   The aggregation subsystem may deserialize 908 newly acquired serialized measurements from the split subsystem and other serialized measurements from the in-memory data store for measurement aggregation. When the aggregation subsystem deserializes the newly acquired serialized measurement and the measurement from the in-memory data store, the aggregation subsystem uses the newly acquired serialized measurement from the split subsystem. , Aggregate 910 with other measurements of metrics previously stored in the in-memory data store. This aggregation may include serializing the aggregated measurements into the binary serialization format described above. As the aggregation subsystem aggregates and serializes the measurement values, the aggregation subsystem may save 912 the serialized measurement values in an in-memory data store.

上述のように、コンピューティングリソースモニタリングサービスのフロントエンドサーバは、サービスのメトリクス統合エンジンと併用されて、カスタマーコンピュータシステム及び/または他のコンピューティングリソースからのGETリクエストを処理し満たし得る。例えば、GETリクエストに応答して、メトリクス統合エンジンは、メトリクスマッピングレジストリ内で指定されたような1つまたは複数の集計データストアから、リクエストを満たすのに必要な測定値を取得し、これらの測定値を、リクエストしているエンティティに配信するためにコンパイルし得る。したがって、図10は、少なくとも一実施形態による、GETアプリケーションプログラミングインタフェース呼び出しに応答して、1つまたは複数の集計データストアから1つまたは複数の測定値を検索するプロセス1000の具体例を示す。プロセス1000は、様々なエンティティからGETリクエストを取得し得るフロントエンドサーバ及び測定値を取得しこれらの測定値を、リクエストしているエンティティに配信するためにコンパイルし得るメトリクス統合エンジンによって行われ得る。   As described above, the front end server of the computing resource monitoring service may be used in conjunction with the service's metrics integration engine to process and satisfy GET requests from customer computer systems and / or other computing resources. For example, in response to a GET request, the metrics integration engine retrieves the measurements necessary to satisfy the request from one or more aggregate data stores as specified in the metrics mapping registry and these measurements. The value can be compiled for delivery to the requesting entity. Accordingly, FIG. 10 illustrates an example process 1000 for retrieving one or more measurements from one or more aggregate data stores in response to a GET application programming interface call, according to at least one embodiment. Process 1000 may be performed by a front end server that may obtain GET requests from various entities and a metrics integration engine that may obtain measurements and compile them for delivery to the requesting entity.

任意の時点で、コンピューティングリソースモニタリングサービスのフロントエンドサーバは、GET API呼び出しを受信1002して、コンピューティングリソースモニタリングサービスから1つまたは複数の測定値を取得し得る。GET API呼び出しは、取得される測定値に対するメタデータを含み得る。フロントエンドサーバは、ハッシュ関数及びメタデータを用いて、コンピューティングリソースモニタリングサービスの1つまたは複数の集計データストアから取得される測定値に対する1つまたは複数のFQMIを生成し得る。フロントエンドサーバは、メトリクスマッピングレジストリにアクセスし1つまたは複数のFQMIを用いて、リクエストされた測定値のそれぞれの位置を判定1004し得る。   At any point in time, the front end server of the computing resource monitoring service may receive 1002 a GET API call and obtain one or more measurements from the computing resource monitoring service. The GET API call may include metadata for the acquired measurement value. The front end server may use the hash function and metadata to generate one or more FQMIs for measurements obtained from one or more aggregate data stores of the computing resource monitoring service. The front end server may access the metrics mapping registry and determine 1004 the location of each of the requested measurements using one or more FQMIs.

フロントエンドサーバが、リクエストされた測定値のそれぞれの位置を取得すると、フロントエンドサーバは、リクエストされた測定値のいずれかが、測定値の期限切れにより、コンピューティングリソースモニタリングサービスの1つまたは複数の集計データストア内にもはや保存されていないかどうかを判定1006し得る。1つまたは複数の測定値が期限切れしていると判定された場合、フロントエンドサーバは、リクエストしているエンティティに、これらの1つまたは複数の測定値は1つまたは複数の集計データストアからもはや利用可能ではないと示し得る1008。これらの期限切れの測定値がアーカイバルデータストアなどの代替データストアに移動されている場合、フロントエンドサーバは、リクエストを、アーカイバルデータストアのコンピュータシステムに送信して、期限切れの測定値を検索し得る。   When the front-end server obtains the location of each of the requested measurements, the front-end server determines that one of the requested measurements is due to one or more of the computing resource monitoring services due to the measurement expiration. A determination 1006 may be made whether it is no longer stored in the aggregate data store. If it is determined that one or more measurements have expired, the front-end server informs the requesting entity that these one or more measurements are no longer from one or more aggregate data stores. 1008 may indicate that it is not available. If these expired measurements have been moved to an alternative data store, such as an archival data store, the front-end server sends a request to the archival data store's computer system to retrieve the expired measurements. obtain.

フロントエンドサーバが、1つまたは複数の集計データストア内の任意の期限切れしていない測定値の位置を判定すると、フロントエンドサーバは、メトリクス統合エンジンに、メトリクスマッピングレジストリ内で指定された1つまたは複数の集計データストアにアクセス1010させて、集計データストアから、1つまたは複数の、GETリクエストを満たすのに必要である測定値を取得1012し得る。メトリクス統合エンジンは、GETリクエストを満たすために、1つまたは複数の集計データストアからの測定値を集計1014しコンパイルし、測定値をデシアライズし得る。一実施形態では、測定値が、コンピューティングリソースモニタリングサービスの1つより多いデータセンタ内に冗長的に保存されている場合、メトリクス統合は、GETリクエストに対する複数のレスポンスを取得する。   When the front-end server determines the location of any unexpired measurements in one or more aggregate data stores, the front-end server informs the metrics integration engine one or more specified in the metric mapping registry. A plurality of aggregate data stores may be accessed 1010 to obtain 1012 measurement values required to satisfy one or more GET requests from the aggregate data store. The metrics integration engine may aggregate and compile measurements from one or more aggregate data stores to GET requests and deserialize the measurements. In one embodiment, metric integration obtains multiple responses to a GET request if the measurements are redundantly stored in more than one data center of the computing resource monitoring service.

データセンタのコンパイルされた測定値が不整合である場合、メトリクス統合エンジンは、1つまたは複数の競合解消ルールを用いて、GETリクエストに応答してどの測定値が提供されるのかを判定し得る。例えば、メトリクス統合エンジンは、様々なデータセンタから、最多のサンプルカウントを有するレスポンスを選択し得る。メトリクス統合エンジンがデータセンタ間の競合が存在する場合はその競合を解消すると、メトリクス統合エンジンは、測定値をフロントエンドサーバに提供し得る。このことによって、フロントエンドサーバが、要求しているエンティティに測定値を提供することによって、GETリクエストを満たすことが可能になり得る。   If the data center's compiled measurements are inconsistent, the metrics integration engine may use one or more conflict resolution rules to determine which measurements are provided in response to a GET request. . For example, the metrics integration engine may select the response with the highest sample count from various data centers. If the metrics integration engine resolves a conflict between data centers, the metrics integration engine may provide the measurements to the front-end server. This may allow the front end server to satisfy the GET request by providing measurements to the requesting entity.

上述のように、測定値をコンピューティングリソースモニタリングサービスに提供しているカスタマーコンピュータシステムまたは他のコンピューティングリソースは、コンピューティングリソースモニタリングサービスの1つまたは複数の集計サブシステムを用いた集計及び保存に先立って、測定値の分割を内部的に行い得る。このアーキテクチャによって、コンピューティングリソースモニタリングサービスは、カスタマーコンピュータシステムまたは他のコンピューティングリソースの論理パーティションから、シリアライズされた測定値を直接取得し得るので、コンピューティングリソースモニタリングサービスが、図2及び図3に関連して上記した1つまたは複数の分割サブシステムまたは分割サブシステムに対するロードバランサを保持する必要性がなくなり得る。したがって、図11は、少なくとも一実施形態による、コンピューティングリソースモニタリングサービスに送信される測定値を、測定値を発行するために分割するプロセス1100の具体例を示す。プロセス1100は、カスタマーコンピュータシステムまたは他のコンピューティングリソースによって行われ得、このカスタマーコンピュータシステムまたは他のコンピューティングリソースは、測定値を内部的に取得し、メモリ内保存を目的としてコンピューティングリソースモニタリングサービスの集計サブシステムに配信するために、測定値を分割するように構成され得る。   As described above, a customer computer system or other computing resource that provides measurements to a computing resource monitoring service may be aggregated and stored using one or more aggregation subsystems of the computing resource monitoring service. Prior to this, the measurement can be divided internally. With this architecture, the computing resource monitoring service can obtain serialized measurements directly from the customer computer system or logical partitions of other computing resources, so that the computing resource monitoring service is shown in FIGS. There may be no need to maintain a load balancer for one or more split subsystems or split subsystems as described above. Accordingly, FIG. 11 shows an illustration of a process 1100 for dividing a measurement sent to a computing resource monitoring service to publish a measurement according to at least one embodiment. Process 1100 may be performed by a customer computer system or other computing resource that obtains measurements internally and compute resource monitoring services for the purpose of in-memory storage. May be configured to divide the measurement values for delivery to the aggregation subsystem.

カスタマーコンピュータシステムまたは他のコンピューティングリソースは、カスタマーコンピュータシステムまたはコンピューティングリソースのヘルス及び他のメトリクスをモニタリングするように構成された1つまたは複数のモニタリングエージェントを含み得る。これらのモニタリングエージェントは、経時的に様々なメトリクスに対する様々な測定値を記録し、これらの測定値をカスタマーコンピュータシステムまたはコンピューティングリソースのフロントエンドモジュールに提供し得る。このようにして、カスタマーコンピュータシステムは、メモリ内データストア内に保存するために、モニタリングエージェントから測定値を取得1102し得る。さらに、カスタマーコンピュータシステムは、取得した測定値に関連するメタデータを取得し得る。上記のプロセス800と同様に、カスタマーコンピュータシステムサーバは、ハッシュ関数及び提供されたメタデータを用いて、測定値に対するFQMIを判定1104し得る。このFQMIは、複数バイトのハッシュを含み得、このハッシュの一部は、コンピューティングリソースモニタリングサービスのメトリクスマッピングレジストリ内のマッピングに少なくとも部分的に基づいて、測定値のメトリクスごとに論理パーティションを判定するのに用いられ得、このハッシュの別の一部は、対応する論理パーティション内にかつて配置された測定値の固有の識別に用いられ得る。カスタマーコンピュータシステムは、さらに、測定値をバイナリシリアライゼーションフォーマットに変換し得る。   The customer computer system or other computing resource may include one or more monitoring agents configured to monitor the health and other metrics of the customer computer system or computing resource. These monitoring agents may record various measurements for various metrics over time and provide these measurements to a customer computer system or computing resource front-end module. In this way, the customer computer system may obtain 1102 measurements from the monitoring agent for storage in an in-memory data store. In addition, the customer computer system may obtain metadata associated with the obtained measurements. Similar to process 800 above, the customer computer system server may determine 1104 the FQMI for the measurement using the hash function and the provided metadata. The FQMI may include a multi-byte hash, a portion of the hash determining a logical partition for each metric of the measurement based at least in part on a mapping in the metrics mapping registry of the computing resource monitoring service. Another part of this hash can be used to uniquely identify measurements once placed in the corresponding logical partition. The customer computer system may further convert the measurements to a binary serialization format.

カスタマーコンピュータシステムは、コンピューティングリソースモニタリングサービスのメトリクスマッピングレジストリにアクセス1106して、論理パーティションのコンピューティングリソースモニタリングサービス内の集計サブシステムに対するマッピングを取得し得る。カスタマーコンピュータシステムは、マッピングならびに測定値のFQMI及びタイムスタンプを用いて、1つまたは複数の保持期間においてアクティブな集計サブシステムを識別し得る。このことによって、カスタマーコンピュータシステムが、各論理パーティションをコンピューティングリソースモニタリングサービス内の対応する集計サブシステムに関連付けることが可能になり得る。   The customer computer system may access 1106 a metric mapping registry of the computing resource monitoring service to obtain a mapping for the aggregation subsystem in the computing resource monitoring service of the logical partition. The customer computer system may identify the active aggregation subsystem in one or more retention periods using the mapping and the measured FQMI and timestamp. This may allow the customer computer system to associate each logical partition with a corresponding aggregation subsystem within the computing resource monitoring service.

一実施形態では、カスタマーコンピュータシステムは、タイムスタンプ及びマッピングを用いて、測定値がマッピングで指定されたような最近の保持期間を過ぎている期間にあるかどうかを判定1108する。測定値が未来のタイムスタンプを含む(例えば、タイムスタンプが最近の保持期間を過ぎている時間にある)場合、カスタマーコンピュータシステムは、測定値を、別個の未分割のキューの待ち行列に入れ得る1110。ここで、測定値は、測定値のタイムスタンプが後の時点で現在の保持期間によってカバーされるまで、残り得る。保持期間が更新されると、カスタマーコンピュータシステムは、測定値をこのキューから取得し、測定値のタイムスタンプが現在の保持期間によってカバーされているかどうかを判定し得る。カバーされていない場合、測定値は、キューに残り得る。   In one embodiment, the customer computer system uses the timestamp and mapping to determine 1108 whether the measurement is in a period that has passed a recent retention period as specified in the mapping. If the measurement includes a future time stamp (eg, at a time when the time stamp is past the most recent retention period), the customer computer system may queue the measurement into a separate undivided queue. 1110. Here, the measurement value may remain until the measurement time stamp is covered by the current retention period at a later time. When the retention period is updated, the customer computer system may obtain a measurement value from this queue and determine whether the measurement time stamp is covered by the current retention period. If not covered, measurements may remain in the queue.

測定値のタイムスタンプが現在の保持期間にある場合、カスタマーコンピュータシステムは、測定値を、タイムスタンプ、FQMI及びマッピングに少なくとも部分的に基づいて判定されたように、分割サブシステムの複数の論理パーティションのうちある論理パーティション内に配置し得る。各論理パーティションは、上記のように、特定のキューに関連付けられ得る。このようにして、測定値が論理パーティションに配置されると、カスタマーコンピュータシステムは、測定値を、対応する集計サブシステムに結び付けられた関連ファイルベースのキュー内の待ち行列に入れ得る1112。このキュー内の測定値は、測定値ごとのタイムスタンプに少なくとも部分的に基づいて、最新の測定値の配信が第1に完了され得るように、分割され得る。このようにして、測定値のこの分割に基づいて、カスタマーコンピュータシステムは、測定値を含む1つまたは複数のPUT API呼び出しを、コンピューティングリソースモニタリングサービス内の対応する集計サブシステムに送信1114し得る。   If the timestamp of the measurement is in the current retention period, the customer computer system determines that the measurement is determined based at least in part on the timestamp, FQMI, and mapping, so that multiple logical partitions of the split subsystem Can be placed in a certain logical partition. Each logical partition may be associated with a particular queue as described above. In this manner, once the measurements are placed in the logical partition, the customer computer system may place the measurements in a queue in an associated file-based queue associated with the corresponding aggregation subsystem. Measurements in this queue may be split based on at least in part on a time stamp for each measurement such that distribution of the latest measurement may be completed first. In this manner, based on this partitioning of measurements, the customer computer system may send 1114 one or more PUT API calls that include the measurements to a corresponding aggregation subsystem within the computing resource monitoring service. .

一実施形態では、PUT API呼び出しは、集計サブシステムに、PUT API呼び出しの配信完了が成功したか否かを示し得る通信プロトコルを用いて送信される。このようにして、このプロトコルを用いて、カスタマーコンピュータシステムは、PUT API呼び出しの、したがって測定値の配信が成功したかどうかを判定1106し得る。測定値の配信が成功しなかった場合、カスタマーコンピュータシステムは、カスタマーコンピュータシステムと集計サブシステムの間の通信チャネルをリフレッシュし、測定値を含む1つまたは複数のPUT API呼び出しを、コンピューティングリソースモニタリングサービス内の対応する集計サブシステムに送信1114し得る。そうではなく、配信が成功した場合、カスタマーコンピュータシステムは、配信成功の確認応答及び集計サブシステム内の測定値の集計を受信1116し得る。   In one embodiment, the PUT API call is sent to the aggregation subsystem using a communication protocol that may indicate whether the delivery of the PUT API call has been successfully completed. In this way, using this protocol, the customer computer system may determine 1106 whether the delivery of the PUT API call, and thus the measurement values, was successful. If the delivery of the measurement is not successful, the customer computer system refreshes the communication channel between the customer computer system and the aggregation subsystem and sends one or more PUT API calls containing the measurement to the computing resource monitoring Transmission 1114 may be made to a corresponding aggregation subsystem in the service. Rather, if the distribution is successful, the customer computer system may receive 1116 an acknowledgment of the successful distribution and an aggregation of measurements within the aggregation subsystem.

上述のように、コンピューティングリソースモニタリングサービスが、メタデータをハッシュして、保存される測定値に対するFQMIを生成すると、カスタマーコンピュータシステムは、メタデータが期限切れしていない限り、または、カスタマーコンピュータシステムがコンピューティングリソースモニタリングサービスとの間に新規のセッションを開始していない限り、特定のメトリクスの測定値を今後送信するために、メタデータを繰り返す必要がもはやなくなり得る。例えば、カスタマーコンピュータシステムがさらなる測定値をコンピューティングリソースモニタリングサービスへ供給するとき、カスタマーコンピュータシステムは、メタデータの代わりに、同一のメトリクスに対応する測定値に対するFQMIを提供し得る。コンピューティングリソースモニタリングサービスは、コンピューティングリソースモニタリングサービスのメモリ内データストア内に様々な測定値を保存することを見越して、測定値及びFQMIをシリアライズし得る。したがって、図12は、少なくとも一実施形態による、メタデータハッシュに少なくとも部分的に基づいて、測定値を1つまたは複数の集計データストアに保存するプロセス1200の具体例を示す。プロセス1200は、上記コンピューティングリソースモニタリングサービスによって行われ得、このコンピューティングリソースモニタリングサービスは、測定値に対するメタデータか測定値ごとのFQMIのいずれかを含み得る、測定値を保存するリクエストを取得し得る。   As described above, when the computing resource monitoring service hashes the metadata and generates an FQMI for the stored measurements, the customer computer system can be configured unless the metadata has expired or Unless a new session is initiated with the computing resource monitoring service, it may no longer be necessary to repeat the metadata for future transmissions of specific metrics. For example, when a customer computer system supplies additional measurements to a computing resource monitoring service, the customer computer system may provide an FQMI for measurements corresponding to the same metric instead of metadata. The computing resource monitoring service may serialize the measurements and FQMI in anticipation of storing various measurements in the in-memory data store of the computing resource monitoring service. Accordingly, FIG. 12 shows an illustration of a process 1200 for storing measurements in one or more aggregate data stores based at least in part on a metadata hash, according to at least one embodiment. Process 1200 may be performed by the computing resource monitoring service, which obtains a request to store a measurement that may include either metadata for the measurement or an FQMI for each measurement. obtain.

任意の時点で、コンピューティングリソースモニタリングサービスは、PUT API呼び出しを受信1202して、測定値を集計データストア内に発行し得る。このPUT API呼び出しは、保存される測定値及び測定値に対するメタデータまたは測定値に対するFQMIを含み得る。このようにして、PUT API呼び出しを通して、コンピューティングリソースモニタリングサービスは、集計データストア内に保存される測定値を取得1204し得る。コンピューティングリソースモニタリングサービスはさらに、PUT API呼び出しが、保存される測定値に対するメタデータを含むかどうかを判定1206し得る。例えば、メタデータは、コンピューティングリソースモニタリングサービス内で関連する測定値及びメトリクスを固有に識別し得る1つまたは複数のメトリクス属性を含み得る。例えば、メタデータは、PUTリクエストを送っているカスタマーコンピュータシステムに関連するまたは測定値の生成に関与している別のコンピューティングリソースに関連するカスタマーのアカウント番号、コンピューティングリソースの管理に関与している特定のサービスの名前(例えば、仮想コンピュータシステムサービス、データベースサービスなど)、測定値のディメンション(例えば、キー/値のペア)及び測定値を生成しているコンピューティングリソースの識別子を、個々にまたは組み合わせて指定し得る。   At any point, the computing resource monitoring service may receive 1202 the PUT API call and publish measurements into the aggregate data store. This PUT API call may include stored measurements and metadata for measurements or FQMI for measurements. In this way, through the PUT API call, the computing resource monitoring service may obtain 1204 measurements stored in the aggregate data store. The computing resource monitoring service may further determine 1206 whether the PUT API call includes metadata for the stored measurements. For example, the metadata may include one or more metric attributes that may uniquely identify relevant measurements and metrics within the computing resource monitoring service. For example, the metadata is related to the customer account number associated with the customer computer system sending the PUT request or related to another computing resource involved in generating the measurement, involved in managing the computing resource. The name of a particular service (eg, virtual computer system service, database service, etc.), the dimension of the measurement (eg, key / value pair) and the identifier of the computing resource generating the measurement, individually or Can be specified in combination.

PUT API呼び出しが測定値に対するメタデータを含む場合、コンピューティングリソースモニタリングサービスは、ハッシュ関数及び提供されたメタデータを用いて、測定値に対するFQMIを含み得るメタデータハッシュを生成1208し得る。このFQMIは、複数バイトのハッシュを含み得、このハッシュの一部は、コンピューティングリソースモニタリングサービスのメトリクスマッピングレジストリ内のマッピングに少なくとも部分的に基づいて、測定値のメトリクスごとに論理パーティションを判定するのに用いられ得、このハッシュの別の一部は、対応する論理パーティション内にかつて配置された測定値の固有の識別に用いられ得る。PUT API呼び出しが測定値に対するメタデータを含まない場合、コンピューティングリソースモニタリングサービスは、PUT API呼び出しが測定値に対するメタデータハッシュ(例えばFQMI)を含むかどうかを判定1210し得る。PUT API呼び出しが測定値に対するメタデータまたはFQMIのいずれも含まない場合、コンピューティングリソースモニタリングサービスは、測定値を保存するリクエストを拒否1212し得る。あるいは、メタデータ及びFQMIの欠落によって測定値は適切にインデックス化され得ないので、コンピューティングリソースモニタリングサービスが測定値を処理し得るが、測定値は、カスタマーコンピュータシステムまたは他のコンピューティングリソースによって取得可能となり得ない。   If the PUT API call includes metadata for the measurement, the computing resource monitoring service may use the hash function and the provided metadata to generate 1208 a metadata hash that may include an FQMI for the measurement. The FQMI may include a multi-byte hash, a portion of the hash determining a logical partition for each metric of the measurement based at least in part on a mapping in the metrics mapping registry of the computing resource monitoring service. Another part of this hash can be used to uniquely identify measurements once placed in the corresponding logical partition. If the PUT API call does not include metadata for the measurement, the computing resource monitoring service may determine 1210 whether the PUT API call includes a metadata hash (eg, FQMI) for the measurement. If the PUT API call does not include either metadata or FQMI for the measurement, the computing resource monitoring service may reject 1212 a request to save the measurement. Alternatively, the measurement may not be properly indexed due to missing metadata and FQMI, so the computing resource monitoring service may process the measurement, but the measurement is obtained by the customer computer system or other computing resource. It cannot be possible.

コンピューティングリソースモニタリングサービスが測定値に対するFQMIを取得すると、コンピューティングリソースモニタリングサービスは、FQMIを利用1214して、測定値のメモリ内ストレージ先を識別し得る。例えば、コンピューティングリソースモニタリングサービスは、メトリクスマッピングレジストリにアクセスして論理パーティションの様々な集計サブシステムに対するマッピングを取得して、測定値の配置のためにかつ集計サブシステムへの配信のために、どの論理パーティションが用いられるかを判定し得る。コンピューティングリソースモニタリングサービスは、シリアライズされた測定値からのFQMI及びタイムスタンプを用いて、測定値を配置するのはどの論理パーティションかを、マッピングに少なくとも部分的に基づいて識別し得る。このことによって、コンピューティングリソースモニタリングサービスが、測定値を適切なストレージ先に保存1216することが可能になり得、このストレージ先は、測定値が測定値のFQMI及びタイムスタンプに少なくとも部分的に基づいて配置されている論理パーティションに関連する集計サブシステムを含み得る。   When the computing resource monitoring service obtains the FQMI for the measurement value, the computing resource monitoring service may utilize 1214 to identify the in-memory storage destination of the measurement value. For example, the computing resource monitoring service can access the metrics mapping registry to obtain mappings for various aggregation subsystems in a logical partition, which can be used for placement of measurements and distribution to the aggregation subsystem. It can be determined whether a logical partition is used. The computing resource monitoring service may use the FQMI and time stamp from the serialized measurements to identify which logical partition to place the measurements based at least in part on the mapping. This may allow the computing resource monitoring service to store 1216 the measured values in an appropriate storage destination, which is based at least in part on the FQMI and timestamp of the measured value. May include an aggregation subsystem associated with logical partitions that are arranged in

上述のように、コンピューティングリソースモニタリングサービスは、1つまたは複数のエンティティから様々なGETリクエストを取得して、メモリ内データストアから測定値を検索し得る。これらのGETリクエストは、取得される測定値に対するメタデータ及びこれらの測定値のタイムスタンプを含み得る。このことによって、コンピューティングリソースモニタリングサービスが、GETリクエストに応答して、測定値の保存位置を判定しリクエストしているエンティティにこれらの測定値を提供することが可能になり得る。したがって、図13は、少なくとも一実施形態による、1つまたは複数の集計データストアから、測定値を取得するリクエスト内に含まれるメタデータに少なくとも部分的に基づいて測定値を検索するプロセス1300の具体例を示す。プロセス1300は、上記コンピューティングリソースモニタリングサービスによって行われ得る。   As described above, the computing resource monitoring service may obtain various GET requests from one or more entities and retrieve measurements from an in-memory data store. These GET requests may include metadata for the acquired measurements and time stamps of these measurements. This may allow the computing resource monitoring service to determine the storage location of the measurements and provide these measurements to the requesting entity in response to the GET request. Accordingly, FIG. 13 illustrates an illustration of a process 1300 for retrieving measurements based at least in part on metadata included in a request to obtain measurements from one or more aggregate data stores, according to at least one embodiment. An example is shown. Process 1300 may be performed by the computing resource monitoring service.

任意の時点で、コンピューティングリソースモニタリングサービスは、GET API呼び出しを受信1302して、コンピューティングリソースモニタリングサービスから1つまたは複数の測定値を取得し得る。コンピューティングリソースモニタリングサービスがGET API呼び出しを受信すると、コンピューティングリソースモニタリングサービスは、GET API呼び出しが、検索される測定値に対するメタデータを含むかどうかを判定1304し得る。GET API呼び出しが、検索される測定値に対するメタデータを含まない場合、コンピューティングリソースモニタリングサービスは、リクエストを拒否1306し得る。しかし、GET API呼び出しが取得される測定値に対するメタデータを含む場合、コンピューティングリソースモニタリングサービスは、ハッシュ関数及びメタデータを用いて、コンピューティングリソースモニタリングサービスの1つまたは複数の集計データストアから取得される測定値に対する1つまたは複数のFQMI(例えば、メタデータハッシュ)を生成1308し得る。   At any point, the computing resource monitoring service may receive 1302 a GET API call and obtain one or more measurements from the computing resource monitoring service. When the computing resource monitoring service receives the GET API call, the computing resource monitoring service may determine 1304 whether the GET API call includes metadata for the retrieved measurement. If the GET API call does not include metadata for the retrieved measurement, the computing resource monitoring service may reject 1306 the request. However, if the GET API call includes metadata for the measurement that is obtained, the computing resource monitoring service retrieves from one or more aggregate data stores of the computing resource monitoring service using a hash function and metadata. One or more FQMIs (eg, metadata hashes) may be generated 1308 for the measured values.

コンピューティングリソースモニタリングサービスが、取得される測定値に対する1つまたは複数のFQMIを生成すると、コンピューティングリソースモニタリングサービスは、メトリクスマッピングレジストリにアクセスし、生成された1つまたは複数のFQMIを使用1310して、測定値が保存され得るメモリ内保存位置(例えば、集計データストア)を識別し得る。例えば、コンピューティングリソースモニタリングサービスは、メトリクスマッピングレジストリから、測定値の、集計データストアに対するマッピングを取得し、FQMIを用いて、リクエストされた測定値を含み得る集計データストアの位置を判定1312し得る。コンピューティングリソースモニタリングサービスが、リクエストされた測定値に対するメモリ内保存位置を識別できない場合(例えば、測定値が期限切れしているなど)、コンピューティングリソースモニタリングサービスは、リクエストを拒否1306し得る。   When the computing resource monitoring service generates one or more FQMIs for the acquired measurements, the computing resource monitoring service accesses the metrics mapping registry and uses 1310 the generated one or more FQMIs. Thus, a storage location in memory (eg, an aggregate data store) where the measurement values can be stored can be identified. For example, the computing resource monitoring service may obtain a mapping of measurement values to the aggregate data store from the metrics mapping registry and determine 1312 a location of the aggregate data store that may include the requested measurement values using FQMI. . If the computing resource monitoring service cannot identify an in-memory storage location for the requested measurement (eg, the measurement has expired), the computing resource monitoring service may reject 1306 the request.

コンピューティングリソースモニタリングサービスが、リクエストされた測定値の1つまたは複数のメモリ内保存位置を識別できる場合、コンピューティングリソースモニタリングサービスは、リクエストされた測定値を、識別された位置から検索1314し、測定値を、リクエストしているエンティティに配信するためにコンパイル1316し得る。例えば、コンピューティングリソースモニタリングサービスは、測定値が冗長的に保存され得た各データセンタの様々な集計サブシステムから測定値を取得し得る。1つまたは複数のデータセンタから取得した測定値が同一でない場合、コンピューティングリソースモニタリングサービスは、1つまたは複数の競合解消ルールを用いて、GET API呼び出しに対する適切なレスポンスを判定し得る。例えば、コンピューティングリソースモニタリングサービスは、様々なデータセンタから、最多のサンプルカウントを有するレスポンスを選択し得る。コンピューティングリソースモニタリングサービスは、GETリクエストに対するレスポンスを、リクエストしているエンティティが自らの目的のために用い得るデシリアライズされたフォーマットで、コンパイルされた測定値の形式で提供1318し得る。   If the computing resource monitoring service can identify one or more in-memory storage locations of the requested measurement, the computing resource monitoring service searches 1314 for the requested measurement from the identified location; Measurements may be compiled 1316 for delivery to the requesting entity. For example, the computing resource monitoring service may obtain measurements from various aggregation subsystems at each data center where the measurements may be stored redundantly. If the measurements obtained from one or more data centers are not identical, the computing resource monitoring service may use one or more conflict resolution rules to determine an appropriate response to the GET API call. For example, the computing resource monitoring service may select the response with the highest sample count from various data centers. The computing resource monitoring service may provide 1318 a response to the GET request in the form of a compiled measurement in a deserialized format that the requesting entity can use for its own purposes.

図14は、様々な実施形態に従った態様を実装するための例示的環境1400の態様を示す。理解されるように、ウェブベースの環境が説明目的に使用されるが、必要に応じて、異なる環境を使用して様々な実施形態を実装してもよい。環境は、電子クライアントデバイス1402を含み、これは、適切なネットワーク1404上でリクエスト、メッセージまたは情報を送信かつ/または受信し、かつ一部の実施形態で、情報をデバイスのユーザに戻して伝達するように動作可能な任意の適切なデバイスを含み得る。そのようなクライアントデバイスの例には、パーソナルコンピュータ、携帯電話、携帯型メッセージングデバイス、ラップトップ型コンピュータ、タブレットコンピュータ、セットトップボックス、個人データ端末、埋込み型コンピュータシステム、電子ブックリーダなどが挙げられる。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、衛星ネットワークまたは任意の他のそのようなネットワーク及び/もしくはそれらの組み合わせを含む任意の適切なネットワークを含み得る。そのようなシステムに用いられるコンポーネントは、ネットワークの種類及び/または選択された環境に少なくとも部分的に依存し得る。そのようなネットワークを介した通信用のプロトコル及びコンポーネントは周知であり、本明細書で詳細に論じることはない。ネットワークを介する通信は、有線または無線接続及びそれらの組み合わせによって可能にされ得る。本実施例では、環境がリクエストの受信及びそれに応答するコンテンツの提供のためのウェブサーバ1406を含むため、ネットワークはインターネットを含むが、他のネットワークについては、当業者には明白であり得るように、同様の目的に提供する代替のデバイスが使用され得る。   FIG. 14 illustrates aspects of an example environment 1400 for implementing aspects in accordance with various embodiments. As will be appreciated, a web-based environment is used for illustrative purposes, but various embodiments may be implemented using different environments, if desired. The environment includes an electronic client device 1402, which sends and / or receives requests, messages or information over an appropriate network 1404 and, in some embodiments, communicates information back to the user of the device. Any suitable device operable to be included. Examples of such client devices include personal computers, cell phones, portable messaging devices, laptop computers, tablet computers, set top boxes, personal data terminals, embedded computer systems, electronic book readers, and the like. The network may include any suitable network including an intranet, the Internet, a cellular network, a local area network, a satellite network, or any other such network and / or combinations thereof. The components used in such a system may depend at least in part on the type of network and / or the selected environment. Protocols and components for communication over such networks are well known and will not be discussed in detail herein. Communication over the network may be enabled by wired or wireless connections and combinations thereof. In this example, the network includes the Internet because the environment includes a web server 1406 for receiving requests and providing content in response thereto, although other networks may be apparent to those skilled in the art. Alternative devices that serve the same purpose can be used.

具体例の環境は、少なくとも1つのアプリケーションサーバ1408及びデータストア1410を含む。適切なデータストアからデータを取得するなどのタスクを実行するように、連結またはそうでなければ構成され得、そのように相互作用することができる複数のアプリケーションサーバ、層または他の要素、プロセスもしくはコンポーネントが存在し得ることを理解されたい。本明細書中で用いられるサーバは、ハードウェア装置または仮想コンピュータシステムなど様々な方法で実装され得る。一部の文脈で、サーバとは、コンピュータシステム上で実行されているプログラミングモジュールを指し得る。本明細書で使用される「データストア」という用語は、そうでないように記載されていない限りまたは文脈から明らかでない限り、データを保存し、データにアクセスし、かつデータを検索することができる任意のデバイスまたはデバイスの組み合わせを指し、任意の標準、分散型、仮想またはクラスタ化環境において、任意の組み合わせ及び任意の数のデータサーバ、データベース、データストレージデバイス及びデータストレージ媒体を含み得る。アプリケーションサーバは、必要に応じてデータストアと統合して、クライアントデバイスの1つまたは複数のアプリケーションの態様を実行するために、任意の好適なハードウェア、ソフトウェア及びファームウェアを含み得、アプリケーションのデータアクセス及びビジネスロジックの一部または全部を処理する。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供し得、以下に限定するものではないが、ユーザに提供されるのに使用可能なテキスト、画像、音声、動画及び/または他のコンテンツを含むコンテンツも生成することができ、これは、ハイパーテキストマークアップ言語(「HTML」)、拡張マークアップ言語(「XML」)、Java(登録商標)スクリプト、カスケーディングスタイルシート(「CSS」)または別の適切なクライアント側構造化言語の形態で、ウェブサーバによってユーザに提供され得る。クライアント装置に転送されるコンテンツは、クライアント装置によって処理されて、以下に限定するものではないが、聴覚的に、視覚的にかつ/または触覚、味覚及び/または嗅覚を含む他の感覚を通してユーザに感知可能な形式を含む1つまたは複数の形式で、コンテンツを提供し得る。すべてのリクエスト及びレスポンスの処理ならびにクライアントデバイス1402とアプリケーションサーバ1408の間でのコンテンツの配信は、この例では、PHP:ハイパーテキストプリプロセッサ(「PHP」)、パイソン、ルビー、パール、Java(登録商標)、HTML、XMLまたは別の適切なサーバ側構造化言語を用いるウェブサーバによって処理され得る。本明細書で論じられる構造化コードが、本明細書の他の箇所で論じられる任意の適切なデバイスまたはホストマシン上で実行され得るため、ウェブサーバおよびアプリケーションサーバは必須ではなく、単に例示のコンポーネントにすぎないことを理解されたい。さらに、本明細書中で記載された、単一のデバイスで行われている操作は、文脈からそうではないことが明らかでない限り、分散型かつ/または仮想システムを形成し得る複数のデバイスによって集合的に行われ得る。   An exemplary environment includes at least one application server 1408 and a data store 1410. Multiple application servers, tiers or other elements, processes or processes that can be concatenated or otherwise configured to perform tasks such as retrieving data from a suitable data store It should be understood that components can exist. As used herein, a server may be implemented in various ways, such as a hardware device or a virtual computer system. In some contexts, a server can refer to a programming module executing on a computer system. As used herein, the term “data store” is any term that can store, access, and retrieve data unless stated otherwise or apparent from the context. Devices, or combinations of devices, and may include any combination and any number of data servers, databases, data storage devices, and data storage media in any standard, distributed, virtual or clustered environment. The application server may include any suitable hardware, software and firmware to integrate with the data store as needed to execute one or more application aspects of the client device, and to access the application data And some or all of the business logic. The application server may provide access control services in conjunction with the data store, including but not limited to text, images, audio, video and / or other available to be provided to the user. Content including content can also be generated, including hypertext markup language (“HTML”), extended markup language (“XML”), Java® script, cascading style sheet (“CSS”). ) Or another suitable client-side structured language, may be provided to the user by the web server. Content transferred to the client device is processed by the client device to the user through, but not limited to, audibly, visually and / or other senses including touch, taste and / or smell. Content may be provided in one or more formats, including a perceptible format. All request and response processing and content distribution between the client device 1402 and the application server 1408 are, in this example, PHP: Hypertext Preprocessor (“PHP”), Python, Ruby, Pearl, Java®. , HTML, XML, or another suitable server-side structured language. Since the structured code discussed herein can be executed on any suitable device or host machine discussed elsewhere in this specification, a web server and application server are not required, only exemplary components I want you to understand that it is only. Further, operations performed on a single device described herein may be aggregated by multiple devices that may form a distributed and / or virtual system unless the context clearly indicates otherwise. Can be done automatically.

データストア1410は、複数の別個のデータテーブル、データベース、データドキュメント、ダイナミックデータストレージスキーム及び/または他のデータストレージ機構及び本開示の特定の態様に関するデータを保存するための媒体を含み得る。例えば、説明されるデータストアは、生産データ1412及びユーザ情報1416を保存する機構を含み得、生産側にコンテンツを提供するために使用され得る。データストアは、ログデータ1414を格納するための機構を含むこともまた示され、これは、報告、分析または他のかかる目的のために使用され得る。ページの画像情報及びアクセス権情報など、データストアに保存する必要があり得る多数の他の態様が存在し得、これは、必要に応じて上に列挙された機構のいずれかまたはデータストア1410内の追加の機構に保存することができることを理解されたい。データストア1410は、それに応答して、更新または他のプロセスデータをアプリケーションサーバ1408からの命令を受信し、取得するために、それに関連するロジックを介して、動作可能である。アプリケーションサーバ1408は、受信した命令に応答して、静的なデータ、動的なデータまたは静的なデータと動的なデータの組み合わせのデータを提供し得る。ウェブログ(ブログ)、買い物アプリケーション、ニュースサービス及び他のそのようなアプリケーションで用いられるデータなどの動的なデータは、本明細書中で記載されるようなサーバ側の構造化言語によって生成され得、または、アプリケーションサーバ上でまたはその制御下で動作しているコンテンツ管理システム(「CMS」)によって提供され得る。一例では、ユーザは、ユーザが操作するデバイスを通じて、特定の種類の品目の検索リクエストを送信し得る。この事例において、データストアは、ユーザ情報にアクセスして、ユーザの識別情報を検証することができ、カタログの詳細情報にアクセスして、その種類の品目についての情報を取得することができる。次いでこの情報は、ユーザに、ユーザがユーザデバイス1402上でブラウザを介して見ることのできるウェブページ上にリスト化された結果などで戻され得る。関心のある特定の品目の情報を、ブラウザの専用ページまたはウィンドウで見ることができる。しかし、本開示の実施形態は必ずしもウェブページの文脈に限定されるものではなく、リクエストが必ずしもコンテンツに対するリクエストではない一般の処理リクエストに、より一般的に適用可能であり得ることに留意されたい。   Data store 1410 may include a plurality of separate data tables, databases, data documents, dynamic data storage schemes and / or other data storage mechanisms and media for storing data relating to certain aspects of the present disclosure. For example, the described data store may include a mechanism for storing production data 1412 and user information 1416 and may be used to provide content to the production side. The data store is also shown to include a mechanism for storing log data 1414, which may be used for reporting, analysis or other such purposes. There may be many other aspects that may need to be stored in the data store, such as page image information and access rights information, which can be stored in any of the mechanisms listed above or in the data store 1410 as appropriate. It should be understood that additional mechanisms can be stored. In response thereto, the data store 1410 is operable via logic associated therewith to receive and retrieve instructions from the application server 1408 for updates or other process data. Application server 1408 may provide static data, dynamic data, or a combination of static and dynamic data in response to received instructions. Dynamic data such as data used in weblogs (blogs), shopping applications, news services and other such applications can be generated by a server-side structured language as described herein. Or provided by a content management system (“CMS”) running on or under the control of an application server. In one example, a user may send a search request for a particular type of item through a device that the user operates. In this case, the data store can access user information to verify the user's identification information, and can access detailed information in the catalog to obtain information about that type of item. This information may then be returned to the user, such as the results listed on a web page that the user can view on the user device 1402 via a browser. Information about specific items of interest can be viewed on a dedicated page or window of the browser. However, it should be noted that embodiments of the present disclosure are not necessarily limited to the context of a web page and may be more generally applicable to general processing requests where the request is not necessarily a request for content.

各サーバは、通常、一般管理及びそのサーバの操作のための実行可能なプログラム命令を提供するオペレーティングシステムを含み、通常、サーバのプロセッサによって実行されると、サーバがその意図される機能を実行することを可能にする命令を保存するコンピュータ可読ストレージ媒体(例えば、ハードディスク、ランダムアクセスメモリ、読出し専用メモリなど)を含む。サーバのオペレーティングシステム及び一般的な機能性の好適な実装は、既知である、または市販入手可能であり、特に、本明細書の開示を踏まえて、当業者によって容易に実装される。   Each server typically includes an operating system that provides executable program instructions for general administration and operation of the server, and when executed by the server's processor, the server typically performs its intended functions. Including computer readable storage media (eg, hard disk, random access memory, read only memory, etc.) that store instructions that enable it. Suitable implementations of the server operating system and general functionality are known or commercially available, and are readily implemented by those skilled in the art, especially in light of the disclosure herein.

一実施形態における環境は、1つまたは複数のコンピュータネットワークもしくは直接接続を使用し、通信リンクを介して相互接続された複数のコンピュータシステムおよびコンポーネントを利用する、分散型かつ/または仮想コンピューティング環境である。しかしながら、当業者であれば、そのようなシステムが、図14に説明されるコンポーネントよりも少ない数または多い数のコンポーネントを有するシステムにおいても同等にうまく動作し得ることを理解する。したがって、図14のシステム1400の描写は、本質的に例示とみなされるべきであり、本開示の範囲を制限するものではない。   The environment in one embodiment is a distributed and / or virtual computing environment that utilizes one or more computer networks or direct connections and utilizes multiple computer systems and components interconnected via communication links. is there. However, those skilled in the art will appreciate that such a system may work equally well in a system having fewer or more components than those illustrated in FIG. Accordingly, the depiction of the system 1400 of FIG. 14 is to be considered exemplary in nature and is not intended to limit the scope of the present disclosure.

さらに、本開示の実施形態は、以下の条項に照らして、説明することができる。
1.コンピュータにより実装される方法であって、
実行可能な命令で構成される1つまたは複数のコンピュータシステムの制御下で、
カスタマーコンピュータシステムから、複数の測定値の受信につながる1つまたは複数のリクエストを受信することであって、前記1つまたは複数のリクエストは、測定値及び前記測定値の属性を指定するメタデータを含む、前記リクエストを受信することと、
ハッシュ関数及び前記メタデータを用いて、完全修飾メトリクス識別子を生成することと、
前記測定値に対する前記完全修飾メトリクス識別子に少なくとも部分的に基づいて、前記測定値を複数の論理パーティションに分割することと、
前記複数の論理パーティションからの前記測定値を、前記測定値を1つまたは複数のメモリ内データストアに保存された前記前記完全修飾メトリクス識別子に関連する他の測定値と集計し保存するために、前記1つまたは複数のメモリ内データストアを備える対応する集計サブシステムに送信することと、
前記1つまたは複数のメモリ内データストアに、前記測定値を保存することと、
1つまたは複数の測定値を検索するリクエストを受信することであって、前記リクエストは、前記1つまたは複数の測定値に関連するメタデータを含む、前記リクエストを受信することと、
前記ハッシュ関数及び前記1つまたは複数の測定値に関連する前記メタデータを用いて、前記完全修飾メトリクス識別子を生成することと、
前記完全修飾メトリクス識別子を用いて、前記1つまたは複数の測定値及び前記他の測定値が保存されている前記1つまたは複数のメモリ内データストアを識別することと、
前記識別された1つまたは複数のメモリ内データストアから、前記1つまたは複数の測定値及び前記他の測定値を取得することと、
前記リクエストに応答して、前記1つまたは複数の測定値及び前記他の測定値を提供することと、を含む、前記方法。
Furthermore, embodiments of the present disclosure can be described in light of the following clauses.
1. A computer-implemented method comprising:
Under the control of one or more computer systems comprised of executable instructions,
Receiving one or more requests from a customer computer system that result in receipt of a plurality of measurements, wherein the one or more requests include metadata specifying the measurements and attributes of the measurements. Including receiving the request;
Generating a fully qualified metric identifier using a hash function and the metadata;
Partitioning the measurement into a plurality of logical partitions based at least in part on the fully qualified metric identifier for the measurement;
To aggregate and store the measurements from the plurality of logical partitions with other measurements associated with the fully qualified metric identifier stored in one or more in-memory data stores. Transmitting to a corresponding aggregation subsystem comprising the one or more in-memory data stores;
Storing the measured values in the one or more in-memory data stores;
Receiving a request to retrieve one or more measurements, wherein the request includes metadata associated with the one or more measurements;
Generating the fully qualified metric identifier using the hash function and the metadata associated with the one or more measurements;
Identifying the one or more in-memory data stores in which the one or more measurements and the other measurements are stored using the fully qualified metric identifier;
Obtaining the one or more measurements and the other measurements from the identified one or more in-memory data stores;
Providing the one or more measurements and the other measurements in response to the request.

2.前記1つまたは複数のメモリ内データストアに保存するために、前記測定値を前記完全修飾識別子に関連する前記他の測定値と集計することをさらに含む、条項1に記載のコンピュータにより実装される方法。   2. The computer-implemented clause of clause 1 further comprising aggregating the measurement with the other measurement associated with the fully qualified identifier for storage in the one or more in-memory data stores. Method.

3.前記測定値のタイムスタンプに少なくとも部分的に基づいて、前記複数の論理パーティションの前記測定値を分割して、最新の測定値の送信を第1に可能にすることをさらに含む、条項1または2に記載のコンピュータにより実装される方法。   3. Clause 1 or 2 further comprising: splitting the measurements of the plurality of logical partitions based primarily at least in part on the timestamps of the measurements to first enable transmission of the latest measurement A computer-implemented method according to claim 1.

4.メトリクスマッピングレジストリから、前記複数の論理パーティションの複数の集計サブシステムに対するマッピングを取得することと、
前記マッピング及び前記測定値の測定値ごとのタイムスタンプに少なくとも部分的に基づいて、前記対応する集計サブシステムを識別することと、
前記複数の論理パーティションを前記識別された対応する集計サブシステムに関連付けて、前記測定値の、前記識別された対応する集計サブシステムへの送信を可能にすることと、をさらに含む、条項1〜3のいずれかに記載のコンピュータにより実装される方法。
4). Obtaining a mapping for a plurality of aggregation subsystems of the plurality of logical partitions from a metrics mapping registry;
Identifying the corresponding aggregation subsystem based at least in part on the mapping and a timestamp for each measurement of the measurement;
Further comprising associating the plurality of logical partitions with the identified corresponding aggregation subsystem to allow the measurement to be transmitted to the identified corresponding aggregation subsystem. 4. A method implemented by a computer according to any one of 3 above.

5.1つまたは複数のサービスを実装するように構成された少なくとも1つのコンピューティングデバイスを備えるシステムであって、前記1つまたは複数のサービスが、
測定値を保存するリクエストを受信することであって、前記リクエストは、前記測定値及び前記測定値の属性を指定するメタデータを含む、前記リクエストを受信することと、
前記メタデータに少なくとも部分的に基づいて、前記測定値に対するメトリクス識別子を生成することと、
前記メトリクス識別子に少なくとも部分的に基づいて、前記測定値の配置のために、複数のデータセンタの複数のパーティションのうちのあるパーティションを選択することと、
前記パーティションから前記測定値を1つまたは複数のメモリ内データストアを備える対応する集計システムに送信することと、
前記測定値を、前記1つまたは複数のメモリ内データストアのうちのあるメモリ内データストア内に以前に保存された1つまたは複数の測定値と集計することと、
前記測定値及び前記1つまたは複数のメモリ内データストアのうちの前記メモリ内データストアの前記1つまたは複数の測定値を保存することと、を行うように構成された、前記システム。
5. A system comprising at least one computing device configured to implement one or more services, the one or more services comprising:
Receiving a request to store a measurement value, wherein the request includes metadata specifying the measurement value and an attribute of the measurement value;
Generating a metric identifier for the measurement based at least in part on the metadata;
Selecting a partition of a plurality of partitions of a plurality of data centers for placement of the measurement values based at least in part on the metrics identifier;
Sending the measurements from the partition to a corresponding aggregation system comprising one or more in-memory data stores;
Aggregating the measurements with one or more measurements previously stored in an in-memory data store of the one or more in-memory data stores;
Storing the measurement and the one or more measurements of the in-memory data store of the one or more in-memory data stores.

6.前記1つまたは複数のサービスが、さらに、
1つまたは複数の測定値を検索するリクエストを受信することであって、前記リクエストは、前記1つまたは複数の測定値に関連するメタデータを含む、前記リクエストを受信することと、
前記1つまたは複数の測定値に関連する前記メタデータに少なくとも部分的に基づいて、前記メトリクス識別子を生成することと、
前記メトリクス識別子を用いて、前記1つまたは複数の測定値が保存されている前記複数のデータセンタ内の前記1つまたは複数のメモリ内データストアを識別することと、
前記複数のデータセンタの前記識別された1つまたは複数のメモリ内データストアから、前記1つまたは複数の測定値を取得することと、
前記1つまたは複数の測定値が前記複数のデータセンタとは異なる場合、1つまたは複数の競合解消ルールを用いて、前記リクエストに応答して送信される前記1つまたは複数の測定値を判定することと、
前記リクエストに応答して、前記1つまたは複数の測定値を送信することと、を行うように構成された、条項5に記載のシステム。
6). The one or more services further comprises:
Receiving a request to retrieve one or more measurements, wherein the request includes metadata associated with the one or more measurements;
Generating the metrics identifier based at least in part on the metadata associated with the one or more measurements;
Using the metrics identifier to identify the one or more in-memory data stores in the plurality of data centers where the one or more measurements are stored;
Obtaining the one or more measurements from the identified one or more in-memory data stores of the plurality of data centers;
If the one or more measurements are different from the plurality of data centers, one or more conflict resolution rules are used to determine the one or more measurements sent in response to the request To do
6. The system of clause 5, wherein the system is configured to send the one or more measurements in response to the request.

7.前記測定値の前記属性の少なくとも1つが前記測定値のタイムスタンプを含み、
前記パーティションの前記選択が、さらに前記タイムスタンプに少なくとも部分的に基づいている、条項5または6に記載のシステム。
7). At least one of the attributes of the measurement includes a timestamp of the measurement;
The system of clause 5 or 6, wherein the selection of the partition is further based at least in part on the timestamp.

8.前記1つまたは複数のサービスが、さらに、前記メモリ内データストアから、保持期間の期限切れに少なくとも部分的に基づいて、前記保持期間を過ぎているタイムスタンプを有する測定値を削除するように構成された、条項5〜7のいずれかに記載のシステム。   8). The one or more services are further configured to delete from the in-memory data store measurements having time stamps past the retention period based at least in part on expiration of the retention period. The system according to any one of clauses 5 to 7.

9.前記1つまたは複数のサービスが、さらに、前記測定値をバイナリシリアライゼーションフォーマットでシリアライズし、前記バイナリシリアライゼーションフォーマットの前記測定値が、前記メトリクス識別子、前記測定値のタイムスタンプ、前記測定値の測定の単位、及び前記測定値自体を含む、ように構成された、条項5〜8のいずれかに記載のシステム。   9. The one or more services further serialize the measurement value in a binary serialization format, wherein the measurement value in the binary serialization format includes the metric identifier, a timestamp of the measurement value, a unit of measurement of the measurement value And the system according to any of clauses 5-8, configured to include the measurement itself.

10.前記1つまたは複数のサービスが、さらに、
前記複数のパーティションの複数の集計システムに対するマッピングを取得し、
前記マッピング及び前記測定値のタイムスタンプに少なくとも部分的に基づいて、前記選択されたパーティションに対する前記対応する集計システムを識別し、
前記選択されたパーティションを前記対応する集計システムに関連付けて、前記選択されたパーティションからの前記測定値を前記対応する集計システムに送信することを可能にするように構成された、条項5〜9のいずれかに記載のシステム。
10. The one or more services further comprises:
Obtaining a mapping of the plurality of partitions to a plurality of aggregation systems;
Identifying the corresponding aggregation system for the selected partition based at least in part on the mapping and a timestamp of the measurement;
Clauses 5-9 configured to associate the selected partition with the corresponding aggregation system and to allow the measurements from the selected partition to be transmitted to the corresponding aggregation system. A system according to any of the above.

11.前記1つまたは複数のサービスが、さらに、
第2の測定値を保存するリクエストを受信することであって、前記リクエストは、前記第2の測定値及び前記第2の測定値の属性を指定するメタデータを含む、前記リクエストを受信することと、
前記メタデータに少なくとも部分的に基づいて、前記第2の測定値に対するメトリクス識別子を生成することと、
前記第2の測定値のタイムスタンプ及び前記メトリクス識別子に少なくとも部分的に基づいて、前記第2の測定値の前記タイムスタンプが保持期間外にあることを受けて、前記第2の測定値を配置するのに利用可能なパーティションはないことを判定することと、
前記タイムスタンプ及び前記メトリクス識別子に少なくとも部分的に基づいて、パーティションが利用可能になるまで、前記第2の測定値をキューに保存することと、を行うように構成された、条項5〜10のいずれかに記載のシステム。
11. The one or more services further comprises:
Receiving a request to store a second measurement value, wherein the request includes the metadata specifying the second measurement value and an attribute of the second measurement value. When,
Generating a metric identifier for the second measurement based at least in part on the metadata;
Placing the second measurement value in response to the time stamp of the second measurement value being outside a retention period based at least in part on the time stamp of the second measurement value and the metric identifier. Determining that there are no partitions available to do
Clauses 5-10 configured to: queue the second measurement until a partition becomes available based at least in part on the timestamp and the metric identifier. A system according to any of the above.

12.前記1つまたは複数のサービスが、さらに、前記選択されたパーティションに、前記測定値を配置する容量がない場合、前記測定値のタイムスタンプよりも以前のタイムスタンプを有する1つまたは複数の他の測定値をパージするように構成された、条項5〜11のいずれかに記載のシステム。   12 If the one or more services further have no capacity to place the measurement in the selected partition, one or more other ones having a time stamp earlier than the time stamp of the measurement 12. System according to any of clauses 5-11, configured to purge measurements.

13.非一時的なコンピュータ可読ストレージ媒体であって、実行可能な命令を保存し、前記命令は、コンピュータシステムの1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
複数のパーティションのうちのあるパーティションから、メトリクスの複数の測定値を受信することと、
メモリ内データストアから、前記メトリクスの他の測定値を取得することと、
前記受信した複数の測定値を前記他の測定値と集計することと、
前記集計し測定値を前記メモリ内データストアに保存することと、を行わせる、前記非一時的なコンピュータ可読ストレージ媒体。
13. A non-transitory computer readable storage medium that stores executable instructions that when executed by one or more processors of the computer system, at least in the computer system,
Receiving multiple metrics measurements from one of the partitions,
Obtaining other measurements of the metrics from an in-memory data store;
Aggregating the received measurement values with the other measurement values;
The non-transitory computer readable storage medium for causing the aggregated measurements to be stored in the in-memory data store.

14.前記命令は、さらに、前記コンピュータシステムに、
1つまたは複数のメモリ内データストアから1つまたは複数の測定値を検索するリクエストを受信することであって、前記リクエストは、前記1つまたは複数の測定値に対するメトリクス識別子を含む、前記リクエストを受信することと、
前記メトリクス識別子を用いて、前記1つまたは複数の測定値が保存されている前記1つまたは複数のメモリ内データストアを識別することと、
前記識別された1つまたは複数のメモリ内データストアから、前記1つまたは複数の測定値を取得することと、
前記1つまたは複数の測定値を送信することと、を行わせる、条項13に記載の非一時的なコンピュータ可読ストレージ媒体。
14 The instructions are further transmitted to the computer system.
Receiving a request to retrieve one or more measurements from one or more in-memory data stores, wherein the request includes a metric identifier for the one or more measurements; Receiving,
Using the metrics identifier to identify the one or more in-memory data stores where the one or more measurements are stored;
Obtaining the one or more measurements from the identified one or more in-memory data stores;
14. The non-transitory computer readable storage medium of clause 13, causing the one or more measurements to be transmitted.

15.前記複数の測定値が、バイナリシリアライゼーションフォーマットで受信され、前記バイナリシリアライゼーションフォーマットの前記複数の測定値が、メトリクス識別子、前記測定値のタイムスタンプ、前記測定値に対する測定の単位、及び前記複数の測定値自体を含む、条項13または14に記載の非一時的なコンピュータ可読ストレージ媒体。   15. The plurality of measurements are received in a binary serialization format, and the plurality of measurements in the binary serialization format include a metric identifier, a timestamp of the measurement, a unit of measurement for the measurement, and the plurality of measurements. 15. A non-transitory computer readable storage medium according to clause 13 or 14, including itself.

16.前記命令は、さらに、前記コンピュータシステムに、
前記複数の測定値及び前記メモリ内データストアからの前記他の測定値をデシリアライズすることと、
前記デシリアライズされた複数の測定値を前記メモリ内データストアからの前記デシリアライズされた測定値と集計することと、
前記集計された測定値を前記メモリ内データストアに保存するのに先立って、前記集計された測定値をシリアライズすることと、を行わせる、条項15に記載の非一時的なコンピュータ可読ストレージ媒体。
16. The instructions are further transmitted to the computer system.
Deserializing the plurality of measurements and the other measurements from the in-memory data store;
Aggregating the deserialized measurement values with the deserialized measurement value from the in-memory data store;
16. The non-transitory computer readable storage medium of clause 15, wherein serializing the aggregated measurement value prior to storing the aggregated measurement value in the in-memory data store.

17.前記命令は、さらに、前記コンピュータシステムに、保持期間の期限切れに少なくとも部分的に基づいて、前記保持期間を過ぎているタイムスタンプを有する、前記メモリ内データストアからの測定値を削除させる、条項13〜16のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。   17. The instructions further cause the computer system to delete measurements from the in-memory data store having a timestamp past the retention period based at least in part on expiration of the retention period. A non-transitory computer readable storage medium according to any one of -16.

18.レジストリから取得された、複数の集計システムに対する前記複数のパーティションのマッピングに少なくとも部分的に基づいて、前記パーティションが前記コンピュータシステムに関連付けられた、条項13〜17のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。   18. 18. The non-transitory of any of clauses 13-17, wherein the partition is associated with the computer system based at least in part on a mapping of the plurality of partitions to a plurality of aggregation systems obtained from a registry. A computer-readable storage medium.

19.前記パーティションは、前記複数の測定値のメトリクス識別子及びタイムスタンプに少なくとも部分的に基づく測定値の分割に少なくとも部分的に基づいて、前記複数の測定値が提供される、条項13〜18のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。   19. Any of clauses 13-18, wherein the partition is provided with the plurality of measurements based at least in part on a division of measurements based at least in part on a metric identifier and a timestamp of the plurality of measurements. A non-transitory computer readable storage medium as described in.

20.前記測定値に対する前記メトリクス識別子が、ハッシュ関数及び前記測定値の属性を指定する前記測定値に対するメタデータを用いて生成される、条項19に記載の非一時的なコンピュータ可読ストレージ媒体。   20. 20. The non-transitory computer readable storage medium of clause 19, wherein the metric identifier for the measurement value is generated using a hash function and metadata for the measurement value that specifies an attribute of the measurement value.

21.実行可能な命令で構成される1つまたは複数のコンピュータシステムの制御下で、
カスタマーコンピュータシステムから、メトリクスに対する期間内に取得された前記メトリクスの測定値を保存するリクエストを受信することであって、前記リクエストは、前記測定値及び前記測定値の属性を指定するメタデータを含む、前記リクエストを受信することと、
前記測定値に対して、ハッシュ関数及び前記メタデータを用いて、前記測定値に対する完全修飾メトリクス識別子を生成することと、
前記測定値の前記完全修飾メトリクス識別子及びタイムスタンプに少なくとも部分的に基づいて、前記測定値に対する1つまたは複数のデータストアを判定することと、
前記判定された第1の1つまたは複数のデータストア内に前記測定値を保存することと、
前記カスタマーコンピュータシステムから、前記メトリクスに対する前記期間内に取得された測定値を指定する第2の複数の測定値を保存する第2のリクエストを受信することであって、前記リクエストは、前記第2の複数の測定値及び前記完全修飾メトリクス識別子を含んでいるが前記メタデータの少なくとも一部が欠落している、前記第2のリクエストを受信することと、
前記第2の複数の測定値の前記完全修飾メトリクス識別子及びタイムスタンプを用いて、前記第2の複数の測定値をどこに保存するかを決定することと、
前記決定に応じて、前記第2の複数の測定値を保存することと、を含む、コンピュータにより実装される方法。
21. Under the control of one or more computer systems comprised of executable instructions,
Receiving a request from a customer computer system to store a measurement value of the metric acquired within a time period for a metric, the request including metadata specifying the measurement value and an attribute of the measurement value Receiving the request;
Generating a fully qualified metric identifier for the measurement value using a hash function and the metadata for the measurement value;
Determining one or more data stores for the measurement based at least in part on the fully qualified metric identifier and timestamp of the measurement;
Storing the measured values in the determined first one or more data stores;
Receiving from the customer computer system a second request to store a second plurality of measurements specifying measurements taken within the time period for the metrics, the request comprising the second request Receiving the second request, including a plurality of measurements and the fully qualified metric identifier but at least a portion of the metadata is missing;
Determining where to store the second plurality of measurements using the fully qualified metric identifier and timestamp of the second plurality of measurements;
Storing the second plurality of measurements in response to the determination.

22.前記カスタマーコンピュータシステムから、前記測定値を検索する第3のリクエストを受信することであって、前記リクエストは、前記完全修飾メトリクス識別子を含む、前記第3のリクエストを受信することと、
前記完全修飾メトリクス識別子を用いて、前記測定値に対する前記1つまたは複数のデータストアから前記測定値を取得することと、をさらに含む、条項21に記載のコンピュータにより実装される方法。
22. Receiving from the customer computer system a third request for retrieving the measurement, wherein the request includes the third request including the fully qualified metric identifier;
22. The computer-implemented method of clause 21, further comprising: using the fully qualified metric identifier to obtain the measurement value from the one or more data stores for the measurement value.

23.ランレングス符号化を用いて、前記測定値及び前記第2の複数の測定値を、同一の値を有する1つまたは複数の連続した測定値に対して圧縮することをさらに含む、条項21または22に記載のコンピュータにより実装される方法。   23. Clause 21 or 22 further comprising compressing the measurement value and the second plurality of measurement values against one or more consecutive measurement values having the same value using run-length encoding. A computer-implemented method according to claim 1.

24.前記決定が、前記第2の複数の測定値を、前記測定値と同一の1つまたは複数のデータストアに保存するというものである場合、前記測定値を前記第2の複数の測定値と集計することをさらに含む、条項21〜23のいずれかに記載のコンピュータにより実装される方法。   24. If the determination is to store the second plurality of measured values in one or more data stores identical to the measured values, the measured values are aggregated with the second plurality of measured values. 24. The computer-implemented method of any of clauses 21-23, further comprising:

25.1つまたは複数のサービスを実装するように構成された少なくとも1つのコンピューティングデバイスを備えるシステムであって、前記1つまたは複数のサービスが、
メトリクスの複数の測定値を保存するリクエストを受信することであって、前記リクエストは、前記メトリクスの他の測定値を保存するための先のリクエストで受信されたメタデータと同一のメタデータを有さない、前記リクエストを受信することと、
前記複数の測定値に対するメトリクス識別子を判定することと、
前記メトリクス識別子を用いて前記複数の測定値を保存し、前記メトリクスの測定値を検索するための、前記メタデータを指定しているリクエストに応答する情報が、前記複数の測定値及び前記他の測定値の少なくとも両方を含むようにすることと、を行うように構成された、前記システム。
25. A system comprising at least one computing device configured to implement one or more services, the one or more services comprising:
Receiving a request to store a plurality of measurements of a metric, the request having the same metadata as received in a previous request to store other measurements of the metric. Do not receive the request;
Determining a metric identifier for the plurality of measurements;
The response to the request designating the metadata for storing the plurality of measurement values using the metric identifier and retrieving the measurement value of the metric includes the plurality of measurement values and the other measurement values. The system configured to include at least both of the measurements.

26.前記複数の測定値を保存する前記リクエストが、前記メトリクス識別子を含む、条項25に記載のシステム。   26. 26. The system of clause 25, wherein the request to store the plurality of measurements includes the metric identifier.

27.前記1つまたは複数のサービスが、さらに、前記判定されたメトリクス識別子に少なくとも部分的に基づいて、前記複数の測定値を前記他の測定値と集計するように構成された、条項25または26に記載のシステム。   27. In clause 25 or 26, wherein the one or more services are further configured to aggregate the plurality of measurements with the other measurements based at least in part on the determined metric identifier. The system described.

28.前記メトリクスデータを保存するのに、前記判定された完全修飾メトリクス識別子を用いることが、
前記複数の測定値のうちの前記測定値の前記メトリクス識別子及びタイムスタンプを用いて、前記複数の測定値を1つまたは複数のパーティションに分割することと、
前記複数の測定値の保存のために、前記1つまたは複数のパーティションからの前記複数の測定値を前記複数の集計サブシステムのうちの1つまたは複数の集計サブシステムに送信することと、
前記複数の測定値を、前記1つまたは複数の集計サブシステムの1つまたは複数の集計データストア内に保存することと、を含む、条項25〜27のいずれかに記載のシステム。
28. Using the determined fully qualified metric identifier to store the metric data;
Dividing the plurality of measurement values into one or more partitions using the metric identifier and timestamp of the measurement values of the plurality of measurement values;
Sending the plurality of measurements from the one or more partitions to one or more of the plurality of aggregation subsystems for storage of the plurality of measurements;
28. The system of any of clauses 25-27, comprising storing the plurality of measurements in one or more aggregation data stores of the one or more aggregation subsystems.

29.前記1つまたは複数のサービスが、さらに、
メトリクスマッピングレジストリから、前記複数の測定値のうちの前記測定値のタイムスタンプに少なくとも部分的に基づいて、前記1つまたは複数のパーティションと前記複数の集計サブシステムの1つまたは複数のマッピングを取得し、
前記1つまたは複数のマッピングに少なくとも部分的に基づいて、前記複数の集計サブシステムから1つまたは複数の集計サブシステムを選択するように構成された、条項28に記載のシステム。
29. The one or more services further comprises:
Obtaining one or more mappings of the one or more partitions and the plurality of aggregation subsystems from a metrics mapping registry based at least in part on a timestamp of the measurements of the plurality of measurements And
29. The system of clause 28, configured to select one or more aggregation subsystems from the plurality of aggregation subsystems based at least in part on the one or more mappings.

30.前記1つまたは複数のサービスが、さらに、
前記複数の測定値を検索する第2のリクエストを受信することであって、前記リクエストは、前記メタデータを指定する、前記第2のリクエストを受信することと、
前記メタデータに少なくとも部分的に基づいて、前記メトリクス識別子を判定することと、
前記メトリクス識別子及び前記メタデータに指定された1つまたは複数の期間を用いて、前記複数の測定値及び前記他の測定値の少なくとも両方を検索することと、を行うように構成された、条項25〜29のいずれかに記載のシステム。
30. The one or more services further comprises:
Receiving a second request to retrieve the plurality of measurements, the request specifying the metadata; receiving the second request;
Determining the metrics identifier based at least in part on the metadata;
A clause configured to retrieve at least both the plurality of measurements and the other measurements using the metric identifier and one or more periods specified in the metadata. The system according to any one of 25 to 29.

31.前記複数の測定値がバイナリシリアライゼーションフォーマットで保存され、前記バイナリシリアライゼーションフォーマットが、前記メトリクス識別子、前記メトリクスデータのタイムスタンプ、前記メトリクスデータに対する測定の単位、及び前記メトリクスデータによって表されるメトリクスの測定値を含む、条項25〜30のいずれかに記載のシステム。   31. The plurality of measurements are stored in a binary serialization format, wherein the binary serialization format includes the metric identifier, a timestamp of the metric data, a unit of measurement for the metric data, and a metric measurement value represented by the metric data. The system according to any of clauses 25-30, comprising:

32.前記メトリクス識別子が、ハッシュ関数及び前記メタデータ内で指定された1つまたは複数のメトリクス属性を用いて生成された、条項25〜31のいずれかに記載のシステム。   32. 32. A system according to any of clauses 25-31, wherein the metric identifier is generated using a hash function and one or more metric attributes specified in the metadata.

33.非一時的なコンピュータ可読ストレージ媒体であって、実行可能な命令を保存し、前記命令は、コンピュータシステムの1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
メトリクスの1つまたは複数の測定値を保存する第1のアプリケーションプログラミングインタフェース呼び出しを受信することであって、前記第1のアプリケーションプログラミングインタフェース呼び出しは、前記1つまたは複数の測定値及び前記1つまたは複数の測定値に対するメトリクス識別子を指定し、前記メトリクス識別子は、前記メトリクスの他の測定値を保存するための先のリクエストに含まれるメタデータに少なくとも部分的に基づいて生成される、前記第1のアプリケーションプログラミングインタフェース呼び出しを受信することと、
前記メトリクス識別子を用いて、前記1つまたは複数の測定値を保存するデータストアを識別することと、
前記1つまたは複数の測定値及び前記他の測定値を、前記メタデータまたは前記完全修飾メトリクス識別子を含むリクエストに応答して取得することができるように、前記1つまたは複数の測定値を前記識別されたデータストアに保存することと、を行わせる、前記非一時的なコンピュータ可読ストレージ媒体。
33. A non-transitory computer readable storage medium that stores executable instructions that when executed by one or more processors of the computer system, at least in the computer system,
Receiving a first application programming interface call that stores one or more measurements of a metric, wherein the first application programming interface call includes the one or more measurements and the one or more Specifying a metric identifier for a plurality of measurements, wherein the metric identifier is generated based at least in part on metadata included in a previous request to store other measurements of the metric. Receiving an application programming interface call of
Identifying a data store storing the one or more measurements using the metrics identifier;
The one or more measurements and the other measurements may be obtained in response to a request that includes the metadata or the fully qualified metric identifier. The non-transitory computer readable storage medium causing storage in an identified data store.

34.前記命令は、さらに、前記コンピュータシステムに、
前記メトリクスの複数の測定値を検索する第2のアプリケーションプログラミングインタフェース呼び出しを受信することであって、前記第2のアプリケーションプログラミングインタフェース呼び出しは、前記メタデータを含む、前記第2のアプリケーションプログラミングインタフェース呼び出しを受信することと、
前記含まれるメタデータを用いて、前記メトリクス識別子を生成することと、
前記生成されたメトリクス識別子及び前記メタデータに指定された1つまたは複数の期間に少なくとも部分的に基づいて、前記1つまたは複数の測定値及び前記他の測定値を含む1つまたは複数のデータストアを識別することと、
前記識別された1つまたは複数のデータストアから、前記1つまたは複数の測定値及び前記他の測定値を提供することと、を行わせる、条項33に記載の非一時的なコンピュータ可読ストレージ媒体。
34. The instructions are further transmitted to the computer system.
Receiving a second application programming interface call retrieving a plurality of measurements of the metric, wherein the second application programming interface call includes the second application programming interface call including the metadata. Receiving and
Generating the metrics identifier using the included metadata;
One or more data including the one or more measurements and the other measurements based at least in part on the generated metric identifier and one or more periods specified in the metadata. Identifying the store,
34. The non-transitory computer readable storage medium of clause 33, wherein the one or more measurements and the other measurements are provided from the identified one or more data stores. .

35.前記命令は、さらに、前記コンピュータシステムに、
前記1つまたは複数の測定値をバイナリシリアライゼーションフォーマットに変換することであって、前記バイナリシリアライゼーションフォーマットの前記1つまたは複数の測定値は、前記メトリクス識別子及び前記測定値を含む、前記バイナリシリアライゼーションフォーマットに変換することを行わせる、条項33または34に記載の非一時的なコンピュータ可読ストレージ媒体。
35. The instructions are further transmitted to the computer system.
Converting the one or more measurements into a binary serialization format, wherein the one or more measurements in the binary serialization format include the metric identifier and the measurements. 35. A non-transitory computer readable storage medium according to clause 33 or 34, which causes the conversion to occur.

36.前記1つまたは複数の測定値を、前記識別されたデータストアに保存することが、
前記データストアから、前記メトリクスのシリアライズされた測定値を検索することであって、前記シリアライズされた測定値が、前記バイナリシリアライゼーションフォーマットで前記他の測定値を含む、前記測定値を検索することと、
前記バイナリシリアライゼーションフォーマットの前記シリアライズされた測定値及び前記1つまたは複数の測定値をデシリアライズすることと、
前記1つまたは複数の測定値を前記他の測定値と集計することと、
前記1つまたは複数の測定値及び前記他の測定値を前記バイナリシリアライゼーションフォーマットに変換することと、を含む、条項35に記載の非一時的なコンピュータ可読ストレージ媒体。
36. Storing the one or more measurements in the identified data store;
Retrieving the serialized measurement value of the metric from the data store, wherein the serialized measurement value includes the other measurement value in the binary serialization format; ,
Deserializing the serialized measurements and the one or more measurements in the binary serialization format;
Aggregating the one or more measurements with the other measurements;
36. The non-transitory computer readable storage medium of clause 35, comprising: converting the one or more measurements and the other measurements to the binary serialization format.

37.前記命令は、さらに、前記コンピュータシステムに、
ランレングス符号化を用いて、前記バイナリシリアライゼーションフォーマットで同一の値を有する1つまたは複数の連続した測定値に対して前記1つまたは複数の測定値を圧縮することを行わせる、条項35または36に記載の非一時的なコンピュータ可読ストレージ媒体。
37. The instructions are further transmitted to the computer system.
Clause 35 or 36, wherein run length encoding is used to compress the one or more measurements to one or more consecutive measurements having the same value in the binary serialization format. A non-transitory computer readable storage medium as described in.

38.前記命令は、さらに、前記コンピュータシステムに、
前記1つまたは複数の測定値の前記メトリクス識別子及びタイムスタンプに少なくとも部分的に基づいて、パーティションを生成することと、
前記論理パーティションの前記1つまたは複数の測定値を、集計サブシステムに割り振るためにキュー内に配置することであって、前記集計サブシステムは、前記識別されたデータストアを含む、前記配置することと、
前記1つまたは複数の測定値を前記識別されたデータストアに保存するために、前記キューから、前記集計サブシステムに前記1つまたは複数の測定値を送信することと、を行わせる、条項33〜37のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
38. The instructions are further transmitted to the computer system.
Generating a partition based at least in part on the metric identifier and timestamp of the one or more measurements;
Placing the one or more measurements of the logical partition in a queue for allocation to an aggregation subsystem, the aggregation subsystem comprising the identified data store; When,
Clause 33, causing the aggregation subsystem to send the one or more measurements from the queue to store the one or more measurements in the identified data store. 38. A non-transitory computer readable storage medium according to any one of -37.

39.前記命令は、さらに、前記コンピュータシステムに、
メトリクスマッピングレジストリから、パーティションと集計サブシステムのマッピングを経時的に取得することと、
前記メトリクスデータの前記メトリクス識別子及び前記タイムスタンプを用いて、前記1つまたは複数の測定値を前記識別されたデータストアに保存するために、前記マッピングから前記集計サブシステムを判定することと、を行わせる、条項38に記載の非一時的なコンピュータ可読ストレージ媒体。
39. The instructions are further transmitted to the computer system.
Obtaining a mapping of partitions and aggregation subsystems over time from the metrics mapping registry;
Determining the aggregation subsystem from the mapping to store the one or more measurements in the identified data store using the metric identifier and the timestamp of the metric data; 39. A non-transitory computer readable storage medium as set forth in clause 38.

40.前記メトリクス識別子がハッシュ関数を用いて生成されて、前記他の測定値を保存する前記リクエストに含まれる前記メタデータに指定された1つまたは複数のメトリクス属性をハッシュする、条項33〜39のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。   40. Any of clauses 33-39, wherein the metric identifier is generated using a hash function to hash one or more metric attributes specified in the metadata included in the request to store the other measurements. A non-transitory computer readable storage medium according to claim 1.

41.少なくとも、ウェブサーバコンピュータシステムで、
カスタマーコンピュータシステムに関連するコンピューティングリソースから、メトリクスの複数の測定値を取得することであって、前記複数の測定値の測定値ごとに、前記測定値の属性を指定するメタデータを含む、前記メトリクスの複数の取得することと、
ハッシュ関数及び前記メタデータを用いて、前記複数の測定値の測定値ごとに完全修飾メトリクス識別子を生成することと、
コンピューティングリソースモニタリングサービスのメトリクスマッピングレジストリから、前記複数の測定値の測定値ごとのタイムスタンプに少なくとも部分的に基づいて、論理パーティションの前記コンピューティングリソースモニタリングサービスの集計サブシステムに対するマッピングを取得することであって、前記1つまたは複数の集計サブシステムは、前記複数の測定値を保存するためものである、前記マッピングを取得することと、
測定値ごとの前記完全修飾メトリクス識別子及び前記複数の測定値の測定値ごとの前記タイムスタンプに少なくとも部分的に基づいて、前記複数の測定値を複数の論理パーティションに分割することと、
前記複数の測定値の測定値ごとの前記タイムスタンプに少なくとも部分的に基づいて、前記複数の論理パーティションの前記複数の測定値を部分分割することと、
前記複数の測定値の測定値ごとの前記タイムスタンプに少なくとも部分的に基づいて、前記複数の論理パーティションの前記複数の測定値に優先順位を付けることと、
前記コンピューティングリソースモニタリングサービスの前記1つまたは複数の集計サブシステムに1つまたは複数のアプリケーションプログラミングインターフェース呼び出しを送信することであって、前記1つまたは複数の集計サブシステムの1つまたは複数のデータストア内に前記複数の論理パーティションの前記複数の測定値を保存し、前記1つまたは複数のアプリケーションプログラミングインターフェース呼び出しは、前記複数の測定値を含む、前記1つまたは複数のアプリケーションプログラミングインターフェース呼び出しを送信することと、によって、
前記ウェブサーバコンピュータシステムで、入力されるメトリクスを処理することを含む、コンピュータにより実装される方法。
41. At least in a web server computer system,
Obtaining a plurality of metrics measurements from computing resources associated with a customer computer system, the metadata including metadata specifying attributes of the measurements for each of the measurements of the plurality of measurements; Obtaining multiple metrics,
Generating a fully qualified metric identifier for each measurement value of the plurality of measurement values using a hash function and the metadata;
Obtaining a mapping from a metrics mapping registry of the computing resource monitoring service to an aggregate subsystem of the computing resource monitoring service of a logical partition based at least in part on a timestamp for each measurement of the plurality of measurements. The one or more aggregation subsystems are for storing the plurality of measurements, obtaining the mapping;
Dividing the plurality of measurements into a plurality of logical partitions based at least in part on the fully qualified metric identifier for each measurement and the timestamp for each measurement of the plurality of measurements;
Partially dividing the plurality of measurement values of the plurality of logical partitions based at least in part on the timestamp for each measurement value of the plurality of measurement values;
Prioritizing the plurality of measurements of the plurality of logical partitions based at least in part on the timestamp for each measurement of the plurality of measurements;
Sending one or more application programming interface calls to the one or more aggregation subsystems of the computing resource monitoring service, the one or more data of the one or more aggregation subsystems Storing the plurality of measurements of the plurality of logical partitions in a store, the one or more application programming interface calls sending the one or more application programming interface calls including the plurality of measurements; And by
A computer-implemented method comprising processing input metrics at the web server computer system.

42.前記複数の論理パーティションからの前記複数の測定値を1つまたは複数のファイルベースのキューに配置することであって、前記1つまたは複数のファイルベースのキューは、前記1つまたは複数の集計サブシステムに関連付けられている、前記配置することと、
前記ファイルベースのキューから、前記複数の測定値を前記1つまたは複数の集計サブシステムに配信することと、をさらに含む、条項41に記載のコンピュータにより実装される方法。
42. Placing the plurality of measurements from the plurality of logical partitions in one or more file-based queues, wherein the one or more file-based queues include the one or more aggregation subs; Said placing associated with a system;
42. The computer-implemented method of clause 41, further comprising delivering the plurality of measurements from the file-based queue to the one or more aggregation subsystems.

43.最近のタイムスタンプを含む前記少なくとも1つの測定値に少なくとも部分的に基づいて、前記複数の測定値から前記少なくとも1つの測定値を選択することをさらに含む、条項41または42に記載のコンピュータにより実装される方法。   43. 43. The computer-implemented clause of clause 41 or 42, further comprising selecting the at least one measurement from the plurality of measurements based at least in part on the at least one measurement including a recent timestamp. How to be.

44.前記ウェブサーバコンピュータシステムから、前記複数の測定値を前記1つまたは複数のデータストアから検索するリクエストを送信することと、
メトリクス統合エンジンで、前記複数の論理パーティションの前記マッピングに少なくとも部分的に基づいて、前記1つまたは複数のデータストアを含む前記1つまたは複数の集計サブシステムを判定することと、
前記1つまたは複数のデータストアから、前記複数の測定値を取得することと、
前記複数の測定値を前記ウェブサーバコンピュータシステムに提供することと、をさらに含む、条項41〜43のいずれかに記載のコンピュータにより実装される方法。
44. Sending a request from the web server computer system to retrieve the plurality of measurements from the one or more data stores;
Determining at least in part the mapping of the plurality of logical partitions at the metrics integration engine, the one or more aggregation subsystems including the one or more data stores;
Obtaining the plurality of measurements from the one or more data stores;
44. The computer implemented method of any of clauses 41-43, further comprising: providing the plurality of measurements to the web server computer system.

45.1つまたは複数のプロセッサと、
命令を含むメモリであって、前記命令が、前記一つまたは複数のプロセッサによって実行されると、前記システムに、
メトリクスの複数の測定値を受信することであって、前記複数の測定値のうちの測定値は、前記測定値に対するメタデータを含む、前記メトリクスの複数の測定値を受信することと、
前記測定値に対して、前記メタデータに少なくとも部分的に基づいて、メトリクス識別子を判定することと、
前記測定値を複数のパーティションに分割することと、
前記システムから、コンピューティングリソースモニタリングサービスの1つまたは複数の集計システムに、前記測定値を保存するメッセージを送信することと、を行わせる、前記メモリとを備えるシステム。
45. one or more processors;
A memory including instructions, wherein when the instructions are executed by the one or more processors, the system includes:
Receiving a plurality of measured values of the metrics, wherein the measured value of the plurality of measured values includes metadata for the measured value;
Determining a metric identifier for the measurement based at least in part on the metadata;
Dividing the measurement into a plurality of partitions;
A system comprising: the memory, wherein the system causes the computing resource monitoring service one or more aggregation systems to send a message to store the measurement value.

46.前記命令は、さらに、前記システムに、
前記1つまたは複数のデータストアから1つまたは複数の測定値を検索するリクエストを送信することであって、前記リクエストは、前記メトリクス識別子を含み、前記1つまたは複数の測定値に関連する期間を指定し、前記メトリクス識別子及び前記指定された期間は、前記1つまたは複数の測定値が保存されている1つまたは複数のデータストアを識別するのに用いられる、前記リクエストを送信することと、
前記コンピューティングリソースモニタリングサービスから前記1つまたは複数の測定値を取得することと、を行わせる、条項45に記載のシステム。
46. The instructions are further directed to the system,
Sending a request to retrieve one or more measurements from the one or more data stores, the request comprising the metric identifier and a time period associated with the one or more measurements. Sending the request, wherein the metric identifier and the specified period of time are used to identify one or more data stores in which the one or more measurements are stored; ,
46. The system of clause 45, causing the one or more measurements to be obtained from the computing resource monitoring service.

47.前記命令は、さらに、前記システムに、前記測定値をバイナリシリアライゼーションフォーマットでシリアライズすることであって、前記バイナリシリアライゼーションフォーマットの前記測定値が、前記メトリクス識別子、前記測定値のタイムスタンプ、前記測定値に対する測定の単位及び前記測定値自体を含む、前記シリアライズすることと、を行わせる、条項45または46に記載のシステム。   47. The instructions further serialize the measurement value in a binary serialization format to the system, wherein the measurement value in the binary serialization format is associated with the metric identifier, a timestamp of the measurement value, and the measurement value. 47. The system according to clause 45 or 46, wherein the serialization including a unit of measurement and the measurement value itself is performed.

48.前記命令は、さらに、前記システムに、
前記測定値のタイムスタンプに少なくとも部分的に基づいて、複数のパーティションの複数の集計サブシステムに対するマッピングを取得することと、
前記マッピングに少なくとも部分的に基づいて、前記複数のパーティションに対する前記1つまたは複数の集計サブシステムを識別することと、
前記メッセージの作成のために、前記複数のパーティションを前記1つまたは複数の集計サブシステムに関連付けて、前記複数の論理パーティションからの前記測定値の選択を可能にすることと、を行わせる、条項45〜47のいずれかに記載のシステム。
48. The instructions are further directed to the system,
Obtaining a mapping of a plurality of partitions to a plurality of aggregation subsystems based at least in part on the timestamp of the measurements;
Identifying the one or more aggregation subsystems for the plurality of partitions based at least in part on the mapping;
A provision for associating the plurality of partitions with the one or more aggregation subsystems to enable selection of the measurements from the plurality of logical partitions for the creation of the message; 48. The system according to any one of 45 to 47.

49.前記命令は、さらに、前記システムに、
前記複数のパーティションのうちの任意のパーティションが、前記複数の測定値のうちの少なくとも1つの測定値に対して容量が不足しているかどうかを判定することと、
前記少なくとも1つの測定値を配置するための容量を作成するのに、前記少なくとも1つの測定値のタイムスタンプよりも以前のタイムスタンプを有する1つまたは複数の測定値をパージすることと、を行わせる、条項45〜48のいずれかに記載のシステム。
49. The instructions are further directed to the system,
Determining whether any of the plurality of partitions has insufficient capacity for at least one of the plurality of measurements;
Purging one or more measurements having a time stamp earlier than the time stamp of the at least one measurement value to create a capacity for placing the at least one measurement value; 49. A system according to any of clauses 45 to 48.

50.前記命令は、さらに、前記システムに、
前記メトリクス識別子及び保持期間外のタイムスタンプに少なくとも部分的に基づいて、測定値の配置のために利用可能な論理パーティションがないことを判定することと、
論理パーティションが前記測定値の配置のために利用可能となるまで、前記測定値をキューに配置することと、を行わせる、条項45〜49のいずれかに記載のシステム。
50. The instructions are further directed to the system,
Determining that there are no logical partitions available for placement of measurements based at least in part on the metrics identifier and a timestamp outside the retention period;
50. A system according to any of clauses 45-49, causing a queue to be placed until a logical partition is available for placement of the measurement.

51.前記メッセージが、前記1つまたは複数の集計サブシステムに、前記測定値の配信成功の確認応答を提供するように構成されている通信プロトコルを用いて送信される、条項45〜50のいずれかに記載のシステム。   51. Any of clauses 45-50, wherein the message is sent using a communication protocol configured to provide the one or more aggregation subsystems with an acknowledgment of successful delivery of the measurement. The system described.

52.前記命令は、さらに、前記システムに、
前記複数のパーティションからの前記測定値を、前記1つまたは複数の集計サブシステムに関連付けられている1つまたは複数のキュー内に配置することと、
前記キューから、前記測定値を前記1つまたは複数の集計サブシステムに配信することと、を行わせる、条項45〜51のいずれかに記載のシステム。
52. The instructions are further directed to the system,
Placing the measurements from the plurality of partitions in one or more queues associated with the one or more aggregation subsystems;
52. The system according to any of clauses 45-51, wherein the measurement value is distributed from the queue to the one or more aggregation subsystems.

53.非一時的なコンピュータ可読ストレージ媒体であって、実行可能な命令を保存し、前記命令は、コンピュータシステムの1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
メトリクスの測定値を取得することであって、前記測定値は、前記測定値の属性を指定するメタデータを含む、前記メトリクスの測定値を取得することと、
前記メタデータに少なくとも部分的に基づいて、前記測定値に対するメトリクス識別子を判定することと、
前記測定値を含む複数の測定値を複数のパーティションに分割することと、
前記複数のパーティションからの前記複数の測定値を、コンピューティングリソースモニタリングサービスの複数の集計システム間で割り振る、前記非一時的なコンピュータ可読ストレージ媒体。
53. A non-transitory computer readable storage medium that stores executable instructions that when executed by one or more processors of the computer system, at least in the computer system,
Obtaining a measurement value of the metric, wherein the measurement value includes metadata specifying an attribute of the measurement value;
Determining a metric identifier for the measurement based at least in part on the metadata;
Dividing a plurality of measurement values including the measurement values into a plurality of partitions;
The non-transitory computer readable storage medium that allocates the plurality of measurements from the plurality of partitions among a plurality of aggregation systems of a computing resource monitoring service.

54.前記命令は、さらに、前記コンピュータシステムに、
前記複数のパーティションの前記コンピューティングリソースモニタリングサービスの前記複数の集計システムに対するマッピングを取得することと、
前記パーティションを、対応する集計システムに関連付けて、前記パーティションからの前記複数の測定値の前記対応する集計システムへの割り振りを判定することと、を行わせる、条項53に記載の非一時的なコンピュータ可読ストレージ媒体。
54. The instructions are further transmitted to the computer system.
Obtaining a mapping of the computing resource monitoring services of the plurality of partitions to the plurality of aggregation systems;
54. The non-transitory computer of clause 53, further comprising: associating the partition with a corresponding aggregation system to determine allocation of the plurality of measurements from the partition to the corresponding aggregation system. A readable storage medium.

55.前記命令は、さらに、前記コンピュータシステムに、
前記複数の測定値を複数のキュー内に配置することであって、前記1つまたは複数のキューは前記複数の集計システムに関連付けられる、前記配置することと、
前記複数のキューから前記複数の測定値を前記複数の集計システム間で割り振ることと、を行わせる、条項53または54に記載の非一時的なコンピュータ可読ストレージ媒体。
55. The instructions are further transmitted to the computer system.
Placing the plurality of measurements in a plurality of queues, wherein the one or more queues are associated with the plurality of aggregation systems;
55. A non-transitory computer readable storage medium according to clause 53 or 54, wherein the plurality of measurement values from the plurality of queues are allocated among the plurality of aggregation systems.

56.前記命令は、さらに、前記コンピュータシステムに、
前記複数の測定値を、前記複数の測定値の保存が成功すると前記複数の測定値の割り振り成功の確認応答を提供するように構成された通信プロトコルを用いて前記複数の集計システム間で割り振ることを行わせる、条項53〜55のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
56. The instructions are further transmitted to the computer system.
Allocating the plurality of measured values between the plurality of aggregation systems using a communication protocol configured to provide an acknowledgment of successful allocation of the plurality of measured values upon successful storage of the plurality of measured values. 56. A non-transitory computer readable storage medium according to any of clauses 53 to 55, wherein:

57.前記命令は、さらに、前記コンピュータシステムに、
1つまたは複数の測定値を検索するメッセージを前記複数の集計システムに送信することであって、前記リクエストは、前記メトリクス識別子を含み、前記1つまたは複数の測定値に対する期間を指定して、前記複数の集計システムの識別を可能にする、前記複数の集計システムに送信することと、
前記複数の集計システムから前記1つまたは複数の測定値を取得することと、を実行させる、条項53〜56のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
57. The instructions are further transmitted to the computer system.
Sending a message to the plurality of aggregation systems to retrieve one or more measurements, wherein the request includes the metrics identifier and specifies a time period for the one or more measurements; Transmitting to the plurality of aggregation systems to enable identification of the plurality of aggregation systems;
57. A non-transitory computer readable storage medium according to any of clauses 53 to 56, wherein the one or more measurements are obtained from the plurality of aggregation systems.

58.前記命令は、さらに、前記コンピュータシステムに、
前記メトリクスの第2の測定値を取得することであって、前記第2の測定値は前記第2の測定値の属性を指定するメタデータを含む、前記第2の測定値を取得することと、
前記第2の測定値の前記メタデータに少なくとも部分的に基づいて、前記第2の測定値に対するメトリクス識別子を判定することと、
前記第2の測定値に対する前記メトリクス識別子及び最近の保持期間より後である前記第2の測定値のタイムスタンプに少なくとも部分的に基づいて、前記第2の測定値に対して利用可能な論理パーティションは存在しないことを判定することと、
パーティションが前記第2の測定値に対して利用可能になるまで、前記第2の測定値をキューに配置することと、を行わせる、条項53〜57のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
58. The instructions are further transmitted to the computer system.
Obtaining a second measurement value of the metric, wherein the second measurement value includes metadata specifying an attribute of the second measurement value; ,
Determining a metric identifier for the second measurement based at least in part on the metadata of the second measurement;
Logical partition available for the second measurement based at least in part on the metric identifier for the second measurement and a timestamp of the second measurement that is later than a recent retention period Determining that does not exist,
58. A non-transitory computer according to any of clauses 53-57, wherein a second measurement is queued until a partition is available for the second measurement. A readable storage medium.

59.前記命令は、さらに、前記コンピュータシステムに、
前記測定値をバイナリシリアライゼーションフォーマットに変換することであって、前記バイナリシリアライゼーションフォーマットの前記測定値がさらに少なくとも前記メトリクス識別子を含む、前記変換すること、を行わせる、条項53〜58のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
59. The instructions are further transmitted to the computer system.
59. Any of clauses 53-58, wherein the measurement is converted to a binary serialization format, the conversion further comprising the measurement of the binary serialization format further including at least the metric identifier. Non-transitory computer-readable storage medium.

60.前記命令は、さらに、前記コンピュータシステムに、
少なくとも1つの測定値に対する容量が不足している任意のパーティションに対して、前記少なくとも1つの測定値のタイムスタンプよりも以前のタイムスタンプを有する1つまたは複数の測定値を前記パーティションから削除することを行わせる、条項53〜59のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
60. The instructions are further transmitted to the computer system.
For any partition that lacks capacity for at least one measurement, deleting from the partition one or more measurements that have a timestamp earlier than the timestamp of the at least one measurement 60. A non-transitory computer readable storage medium according to any of clauses 53 to 59, wherein:

61.実行可能な命令で構成される1つまたは複数のコンピュータシステムの制御下で、
オートスケールグループの1つまたは複数の仮想マシンインスタンスのための1つまたは複数のロードバランサから、複数の測定値のうちの測定値の属性を指定するメタデータを含む、メトリクスの前記複数の測定値を受信することと、
ハッシュ関数及び前記メタデータを用いて、前記測定値に対する完全修飾メトリクス識別子を生成することと、
前記測定値の前記完全修飾メトリクス識別子及びタイムスタンプに少なくとも部分的に基づいて、前記測定値を分割して、複数の論理パーティションを得ることと、
前記複数の論理パーティションからの前記複数の測定値を、1つまたは複数の集計サブシステムの1つまたは複数のデータストア内に保存するために、前記1つまたは複数の集計サブシステムに送信することと、
前記1つまたは複数の仮想マシンインスタンスに対する1つまたは複数のインスタンスマネージャで、前記1つまたは複数のデータストアから前記測定値を取得することと、
前記オートスケールグループでいくつかの仮想マシンインスタンスを少なくとも変更することによって、前記取得された測定値に少なくとも部分的に基づいて前記オートスケールグループの自動スケーリングを行うことと、を含む、コンピュータにより実装される方法。
61. Under the control of one or more computer systems comprised of executable instructions,
The plurality of measurements of metrics, including metadata specifying attributes of the measurements of one or more from one or more load balancers for one or more virtual machine instances of the autoscale group Receiving and
Generating a fully qualified metric identifier for the measurement using a hash function and the metadata;
Dividing the measurement value based at least in part on the fully qualified metric identifier and time stamp of the measurement value to obtain a plurality of logical partitions;
Sending the plurality of measurements from the plurality of logical partitions to the one or more aggregation subsystems for storage in one or more data stores of the one or more aggregation subsystems; When,
Obtaining the measurements from the one or more data stores with one or more instance managers for the one or more virtual machine instances;
Implementing automatic scaling of the autoscale group based at least in part on the acquired measurements by changing at least some virtual machine instances in the autoscale group. Method.

62.メトリクスマッピングレジストリから、前記複数の論理パーティションの複数の集計サブシステムに対するマッピングを取得することと、
前記複数の論理パーティションの論理パーティションごとに、前記マッピングに少なくとも部分的に基づいて、前記対応する集計サブシステムを識別することと、
各論理パーティションを前記識別された対応する集計サブシステムに関連付けて、前記論理パーティションの前記測定値を、前記識別された対応する集計サブシステムに送信することを可能にすることと、をさらに含む、条項61に記載のコンピュータにより実装される方法。
62. Obtaining a mapping for a plurality of aggregation subsystems of the plurality of logical partitions from a metrics mapping registry;
Identifying, for each logical partition of the plurality of logical partitions, the corresponding aggregation subsystem based at least in part on the mapping;
Further comprising associating each logical partition with the identified corresponding aggregation subsystem to allow the measurements of the logical partition to be transmitted to the identified corresponding aggregation subsystem; 62. A computer implemented method according to clause 61.

63.前記1つまたは複数のインスタンスマネージャから、1つまたは複数の測定値を検索するリクエストを受信することであって、前記リクエストは前記完全修飾メトリクス識別子を含む、前記リクエストを受信することと、
前記完全修飾メトリクス識別子を用いて、前記1つまたは複数の測定値が保存されている前記1つまたは複数のデータストアを識別することと、
前記リクエストに応答して、前記1つまたは複数の測定値を前記1つまたは複数のインスタンスマネージャに提供することと、をさらに含む、条項61または62に記載のコンピュータにより実装される方法。
63. Receiving from the one or more instance managers a request to retrieve one or more measurements, wherein the request includes the fully qualified metric identifier;
Identifying the one or more data stores where the one or more measurements are stored using the fully qualified metrics identifier;
63. The computer-implemented method of clause 61 or 62, further comprising: providing the one or more measurements to the one or more instance managers in response to the request.

64.1つまたは複数の集計サブシステム内で、前記測定値を前記1つまたは複数のメモリ内データストア内の既存の測定値と集計して、前記複数の測定値の保存を可能にすることをさらに含む、条項61〜63のいずれかに記載のコンピュータにより実装される方法。   64. Aggregate the measurements with existing measurements in the one or more in-memory data stores in one or more aggregation subsystems to allow storage of the plurality of measurements. 64. The computer-implemented method of any of clauses 61-63, further comprising:

65.1つまたは複数のサービスを実装するように構成された少なくとも1つのコンピューティングデバイスを備えるシステムであって、前記1つまたは複数のサービスが、
コンピューティングリソースのグループに関連するメトリクスの複数の測定値を受信することであって、前記複数の測定値のうちの測定値は前記測定値に対するメタデータに関連付けられる、前記複数の測定値を受信することと、
前記測定値に対して、前記メタデータに少なくとも部分的に基づいて、メトリクス識別子を判定することと、
前記測定値を複数のパーティションに分割することと、
前記複数のパーティションからの前記測定値を、保存のために1つまたは複数のメモリ内データストアに送信することと、
前記測定値を、前記グループの1つまたは複数のコンピューティングリソースマネージャに提供して、前記グループの1つまたは複数のコンピューティングリソースの修正を可能にすることと、を行うように構成された、前記システム。
65. A system comprising at least one computing device configured to implement one or more services, the one or more services comprising:
Receiving a plurality of measurements of a metric associated with a group of computing resources, wherein the measurements of the plurality of measurements are associated with metadata for the measurements. To do
Determining a metric identifier for the measurement based at least in part on the metadata;
Dividing the measurement into a plurality of partitions;
Sending the measurements from the plurality of partitions to one or more in-memory data stores for storage;
Providing the measurements to one or more computing resource managers of the group to allow modification of one or more computing resources of the group; Said system.

66.前記1つまたは複数のサービスが、
1つまたは複数の測定値を検索するリクエストを受信することであって、前記リクエストは、前記メトリクス識別子を含み、期間を指定する、前記リクエストを受信することと、
前記メトリクス識別子及び前記指定された期間を用いて、前記1つまたは複数の測定値が保存されている前記1つまたは複数のメモリ内データストアを識別することと、
前記1つまたは複数の測定値を取得することと、
前記1つまたは複数の測定値を前記1つまたは複数のコンピューティングリソースマネージャに送信して、前記グループの前記1つまたは複数のコンピューティングリソースの修正を可能にすることと、を行うように構成された、条項65に記載のシステム。
66. The one or more services are
Receiving a request to retrieve one or more measurements, wherein the request includes the metric identifier and specifies a time period;
Identifying the one or more in-memory data stores where the one or more measurements are stored using the metrics identifier and the specified time period;
Obtaining the one or more measurements;
Transmitting the one or more measurements to the one or more computing resource managers to allow modification of the one or more computing resources of the group. 66. The system of clause 65.

67.前記1つまたは複数のサービスが、さらに、前記測定値を、前記1つまたは複数のメモリ内データストアに前記測定値を保存するために、前記1つまたは複数のメモリ内データストアの既存の測定値と集計するように構成された、条項65または66に記載のシステム。   67. The one or more services are further configured to store the measurements in the one or more in-memory data stores to store the measurements in the one or more in-memory data stores. 67. A system according to clause 65 or 66, configured to aggregate with values.

68.前記1つまたは複数のサービスが、さらに、前記測定値をバイナリシリアライゼーションフォーマットでシリアライズし、前記バイナリシリアライゼーションフォーマットの前記測定値が、前記メトリクス識別子、前記メトリクスのタイムスタンプ、前記測定値に対する測定の単位、及び前記測定値自体を含む、ように構成された、条項65〜67のいずれかに記載のシステム。   68. The one or more services further serialize the measurement in a binary serialization format, wherein the measurement in the binary serialization format includes the metric identifier, a timestamp of the metric, a unit of measurement for the measurement; 68. The system of any of clauses 65-67, configured to include the measurement value itself.

69.前記1つまたは複数のサービスが、さらに、前記複数のパーティションのうちの1つまたは複数のパーティションに、前記測定値のための容量がない場合、前記測定値の最も早いタイムスタンプよりも以前のタイムスタンプを有する1つまたは複数の測定値をパージするように構成された、条項65〜68のいずれかに記載のシステム。   69. If the one or more services further have no capacity for the measurement in one or more of the plurality of partitions, a time prior to the earliest time stamp of the measurement 69. A system according to any of clauses 65-68, configured to purge one or more measurements having a stamp.

70.前記1つまたは複数のサービスが、
前記複数のパーティションの複数の集計システムに対するマッピングを取得することであって、前記複数の集計システムは、前記1つまたは複数のメモリ内データストアを含む、前記マッピングを取得することと、
前記マッピングに少なくとも部分的に基づいて、前記複数のパーティションのうちのパーティションに対する対応する集計システムを識別することと、
前記パーティションを前記対応する集計システムに関連付けて、前記パーティションからの前記測定値を前記1つまたは複数のメモリ内データストアに送信することを可能にすることと、を行うように構成された、条項65〜69のいずれかに記載のシステム。
70. The one or more services are
Obtaining a mapping of a plurality of partitions to a plurality of aggregation systems, wherein the plurality of aggregation systems includes the one or more in-memory data stores;
Identifying a corresponding aggregation system for a partition of the plurality of partitions based at least in part on the mapping;
A clause configured to associate the partition with the corresponding aggregation system to allow the measurements from the partition to be transmitted to the one or more in-memory data stores. The system according to any one of 65 to 69.

71.前記1つまたは複数のサービスが、前記1つまたは複数のメモリ内データストアから期限切れの測定値を、前記期限切れの測定値に対する古い保持期間がより新しい保持期間に置き換えられていることを受けて削除するように構成された、条項65〜70のいずれかに記載のシステム。   71. The one or more services delete expired measurements from the one or more in-memory data stores in response to replacement of the old retention period for the expired measurements with a newer retention period. 71. A system according to any of clauses 65-70, configured to:

72.前記1つまたは複数のコンピューティングリソースマネージャが、前記提供された測定値に少なくとも部分的に基づいて、前記オートスケールグループに対してさらなるコンピューティングリソースを供給するように構成された、条項65〜71のいずれかに記載のシステム。   72. Clauses 65-71, wherein the one or more computing resource managers are configured to provide additional computing resources to the autoscale group based at least in part on the provided measurements. The system according to any one of

73.非一時的なコンピュータ可読ストレージ媒体であって、実行可能な命令を保存し、前記命令は、コンピュータシステムの1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
コンピューティングリソースのグループに関連するメトリクスの測定値を受信することであって、前記測定値は、前記測定値に対するメタデータに関連付けられる、前記測定値を受信することと、
前記メタデータに少なくとも部分的に基づいて、メトリクス識別子を判定することと、
前記測定値に対する前記メトリクス識別子に少なくとも部分的に基づいて、複数のパーティションから、あるパーティションを選択することと、
前記選択されたパーティションからの前記測定値を、保存のためにメモリ内データストアに送信することと、
前記測定値を前記コンピューティングリソースのグループに対する1つまたは複数のコンピューティングリソースマネージャに提供して、1つまたは複数の動作を前記コンピューティングリソースのグループ上で行うことを可能にすること、を行わせる、前記非一時的なコンピュータ可読ストレージ媒体。
73. A non-transitory computer readable storage medium that stores executable instructions that when executed by one or more processors of the computer system, at least in the computer system,
Receiving a metric measurement associated with a group of computing resources, wherein the measurement is associated with metadata for the measurement;
Determining a metric identifier based at least in part on the metadata;
Selecting a partition from a plurality of partitions based at least in part on the metric identifier for the measurement;
Sending the measurements from the selected partition to an in-memory data store for storage;
Providing the measurements to one or more computing resource managers for the group of computing resources to allow one or more operations to be performed on the group of computing resources. Said non-transitory computer readable storage medium.

74.前記1つまたは複数のコンピューティングリソースマネージャが、前記提供された測定値に少なくとも部分的に基づいて、前記オートスケールグループから1つまたは複数のコンピューティングリソースを終了させるように構成された、条項73に記載の非一時的なコンピュータ可読ストレージ媒体。   74. Clause 73, wherein the one or more computing resource managers are configured to terminate one or more computing resources from the autoscale group based at least in part on the provided measurements. A non-transitory computer readable storage medium as described in.

75.前記命令は、さらに、前記コンピュータシステムに、
集計システムに対するパーティションのマッピングに少なくとも部分的に基づいて、
前記選択されたパーティションに対する対応する集計システムを判定することであって、前記対応する集計システムは前記メモリ内データストアを含む、前記集計システムを判定することと、
前記パーティションを前記対応する集計システムに関連付けて、前記選択されたパーティションから前記メモリ内データストアへの前記測定値の送信を可能にすること、を行わせる、条項73または74に記載の非一時的なコンピュータ可読ストレージ媒体。
75. The instructions are further transmitted to the computer system.
Based at least in part on the mapping of partitions to the aggregation system,
Determining a corresponding aggregation system for the selected partition, wherein the corresponding aggregation system includes the in-memory data store;
75. The non-temporary clause of clause 73 or 74, wherein the partition is associated with the corresponding aggregation system to allow transmission of the measurement value from the selected partition to the in-memory data store. Computer-readable storage medium.

76.前記命令は、さらに、前記コンピュータシステムに、
前記選択されたパーティションに前記測定値に対する容量がないかどうかを判定することと、
前記測定値のタイムスタンプよりも以前のタイムスタンプを有する1つまたは複数の測定値をパージすることと、を行わせる、条項73〜75のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
76. The instructions are further transmitted to the computer system.
Determining whether the selected partition has no capacity for the measurement;
76. A non-transitory computer readable storage medium according to any of clauses 73 to 75, wherein the non-transitory computer-readable storage medium causes a purge of one or more measurements having a timestamp earlier than the measurement timestamp.

77.前記命令は、さらに、前記コンピュータシステムに、
前記メモリ内データストア内に保存された測定値に関して、古い保持期間がより新しい保持期間に置き換えられたことを判定することと、
メモリ内データストアから、前記古い保持期間内のタイムスタンプを有する測定値を削除することと、を行わせる、条項73〜76のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
77. The instructions are further transmitted to the computer system.
Determining, with respect to measurements stored in the in-memory data store, that an old retention period has been replaced with a newer retention period;
77. A non-transitory computer readable storage medium according to any one of clauses 73 to 76, which causes a measurement value having a timestamp within the old retention period to be deleted from an in-memory data store.

78.前記命令は、さらに、前記コンピュータシステムに、
メトリクスの1つまたは複数の測定値を検索するメッセージを受信することであって、前記リクエストは、前記1つまたは複数の測定値に関連する前記メトリクス識別子を含み、時間範囲を指定する、前記メッセージを受信することと、
前記メトリクス識別子及び前記指定された時間範囲を用いて、1つまたは複数のメモリ内データストアを識別することと、
前記識別された1つまたは複数のメモリ内データストアから、前記1つまたは複数の測定値を取得することと、
前記1つまたは複数の測定値を前記1つまたは複数のコンピューティングリソースマネージャに送信して、前記グループ上で前記1つまたは複数の動作のパフォーマンスを可能にすること、を行わせる、条項73〜78のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
78. The instructions are further transmitted to the computer system.
Receiving the message retrieving one or more measurements of metrics, wherein the request includes the metric identifier associated with the one or more measurements and specifies a time range; Receiving and
Identifying one or more in-memory data stores using the metrics identifier and the specified time range;
Obtaining the one or more measurements from the identified one or more in-memory data stores;
Clauses 73-, causing the one or more measurements to be sent to the one or more computing resource managers to enable performance of the one or more operations on the group. 78. A non-transitory computer readable storage medium according to any of 78.

79.前記命令は、さらに、前記コンピュータシステムに、
前記測定値を、バイナリシリアライゼーションフォーマットを用いてシリアライズし、前記バイナリシリアライゼーションフォーマットの前記測定値が、前記メトリクス識別子、前記測定値のタイムスタンプ、前記測定値に対する測定の単位、及び前記測定値自体を含む、前記シリアライズすること、を行わせる、条項73〜78のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
79. The instructions are further transmitted to the computer system.
The measurement value is serialized using a binary serialization format, and the measurement value of the binary serialization format includes the metric identifier, a timestamp of the measurement value, a unit of measurement for the measurement value, and the measurement value itself. 79. The non-transitory computer-readable storage medium according to any one of clauses 73 to 78, wherein the serializing is performed.

80.前記命令は、さらに、前記コンピュータシステムに、
前記メモリ内データストアから、前記バイナリシリアライゼーションフォーマットの複数の測定値を取得することと、
前記複数の測定値及び前記受信した前記メトリクスの測定値をデシリアライズすることと、
前記複数の測定値を前記メトリクスの前記受信した測定値と、前記メモリ内データストア内に保存するために集計することと、を行わせる、条項79に記載の非一時的なコンピュータ可読ストレージ媒体。
80. The instructions are further transmitted to the computer system.
Obtaining a plurality of measurements of the binary serialization format from the in-memory data store;
Deserializing the plurality of measurements and the received measurements of the metrics;
80. The non-transitory computer readable storage medium of clause 79, causing the plurality of measurements to be collected for the received measurements of the metrics and stored in the in-memory data store.

81.コンピューティングリソースサービスプロバイダによって提供されるコンピューティングリソースモニタリングサービスの1つまたは複数のコンピュータシステムの制御下で、
前記コンピューティングリソースサービスプロバイダのカスタマーのカスタマーコンピュータシステムから、メトリクスの測定値の第1のセットを検索する第1のアプリケーションプログラミングインタフェース呼び出しを受信することであって、前記第1のアプリケーションプログラミングインタフェース呼び出しは、完全修飾メトリクス識別子を含み、測定値の前記第1のセットに対する時間範囲及び測定値の前記第1のセットが信頼できるべきであることを示すパラメータを指定するものである、前記第1のアプリケーションプログラミングインタフェース呼び出しを受信することと、
前記完全修飾メトリクス識別子及び測定値の前記第1のセットに対する前記指定された時間範囲に少なくとも部分的に基づいて、測定値の前記第1のセットが保存されている1つまたは複数のデータストアを判定することと、
測定値の前記第1のセットが保存されている前記判定された1つまたは複数のデータストアから、測定値の前記第1のセットを取得することと、
前記判定された1つまたは複数のデータストアから取得された測定値の前記第1のセットが信頼できるものであるかどうかを判定することと、
測定値の前記第1のセットが信頼できるものであることを受けて、測定値の前記第1のセットを、前記第1のアプリケーションプログラミングインターフェース呼び出しに応答して提供することと、
前記カスタマーコンピュータシステムから、前記メトリクスの測定値の第2のセットを取得する第2のアプリケーションプログラミングインターフェース呼び出しを受信することであって、前記第2のアプリケーションプログラミングインタフェース呼び出しは、前記完全修飾メトリクス識別子を含み、測定値の前記第2のセットに対する時間範囲及び測定値の前記第2のセットは前記メトリクスの測定値の保存の期間が過ぎたかどうかにかかわらず取得されることを示すパラメータを指定するものである、前記第2のアプリケーションプログラミングインターフェース呼び出しを受信することと、
前記完全修飾メトリクス識別子及び測定値の前記2のセットに対する前記指定された時間範囲に少なくとも部分的に基づいて、測定値の前記第2のセットが保存されている1つまたは複数のデータストアを判定することと、
測定値の前記第2のセットが保存されている前記判定された1つまたは複数のデータストアから、測定値の前記第2のセットを取得することと、
前記第2のアプリケーションプログラミングインタフェース呼び出しに応答して、測定値の前記第2のセットを提供することと、を含む、コンピュータにより実装される方法。
81. Under the control of one or more computer systems of a computing resource monitoring service provided by a computing resource service provider,
Receiving a first application programming interface call retrieving a first set of metrics measurements from a customer computer system of a customer of the computing resource service provider, wherein the first application programming interface call is The first application comprising a fully qualified metric identifier and specifying a time range for the first set of measurements and a parameter indicating that the first set of measurements should be reliable Receiving a programming interface call;
One or more data stores in which the first set of measurements is stored based at least in part on the fully qualified metric identifier and the specified time range for the first set of measurements. Judging,
Obtaining the first set of measurements from the determined one or more data stores in which the first set of measurements is stored;
Determining whether the first set of measurements obtained from the determined one or more data stores is reliable;
Providing the first set of measurements in response to the first application programming interface call in response to the first set of measurements being reliable;
Receiving from the customer computer system a second application programming interface call to obtain a second set of metrics measurements, wherein the second application programming interface call includes the fully qualified metric identifier. Including a parameter indicating that the time range for the second set of measurements and the second set of measurements are obtained regardless of whether the storage period of the metrics measurements has passed Receiving the second application programming interface call,
Determine one or more data stores in which the second set of measurements are stored based at least in part on the fully qualified metric identifier and the specified time range for the two sets of measurements. To do
Obtaining the second set of measurements from the determined one or more data stores in which the second set of measurements is stored;
Providing the second set of measurements in response to the second application programming interface call.

82.前記カスタマーコンピュータシステムから、第2のメトリクスに対する期間内に取得された前記第2のメトリクスの測定値を保存する第3のアプリケーションプログラミングインタフェース呼び出しを受信することであって、前記第3のアプリケーションプログラミングインタフェース呼び出しは、保存される前記測定値が前記期間において信頼できることを示すパラメータを指定するものである、前記第3のアプリケーションプログラミングインタフェース呼び出しを受信することと、
前記第2のメトリクスの前記測定値に対する完全修飾メトリクス識別子を判定することと、
前記第2のメトリクスの前記測定値に対する前記完全修飾メトリクス識別子に少なくとも部分的に基づいて、前記第2のメトリクスの前記測定値に対するデータストアを判定することと、
前記判定されたデータストア内に、前記第2のメトリクスの前記測定値を保存することと、
保存される前記測定値が前記期間において信頼できることを示す前記パラメータを指定する前記第3のアプリケーションプログラミングインタフェース呼び出しを受けて、前記第2のメトリクスの前記測定値を検索のために利用可能とし、前記第2のメトリクスの前記測定値が前記期間において信頼できることを示すことと、をさらに含む、条項81に記載のコンピュータにより実装される方法。
82. Receiving from the customer computer system a third application programming interface call that stores measurements of the second metric obtained within a period for a second metric, the third application programming interface Receiving a third application programming interface call, wherein the call specifies a parameter indicating that the stored measurement value is reliable in the period;
Determining a fully qualified metric identifier for the measurement of the second metric;
Determining a data store for the measurement of the second metric based at least in part on the fully qualified metric identifier for the measurement of the second metric;
Storing the measured value of the second metric in the determined data store;
Receiving the third application programming interface call specifying the parameter indicating that the measured value to be stored is reliable in the time period, and making the measured value of the second metric available for retrieval; 82. The computer implemented method of clause 81, further comprising: indicating that the measurement of the second metric is reliable in the time period.

83.前記第2のメトリクスの前記測定値に対する前記完全修飾メトリクス識別子に少なくとも部分的に基づいて、前記測定値を配置するために、複数の論理パーティションのうちのある論理パーティションを選択することと、
メトリクスマッピングレジストリから、前記第2のメトリクスの前記測定値のタイムスタンプに少なくとも部分的に基づいて、前記複数の論理パーティションの複数のメモリ内データストアに対するマッピングを取得することと、
前記論理パーティションからの前記第2のメトリクスの前記測定値を、前記マッピングに少なくとも部分的に基づいて、前記メモリ内データストアを備える対応する集計サブシステムに送信することと、をさらに含む、条項82に記載のコンピュータにより実装される方法。
83. Selecting a logical partition of a plurality of logical partitions to place the measurement based at least in part on the fully qualified metric identifier for the measurement of the second metric;
Obtaining a mapping from a metrics mapping registry to a plurality of in-memory data stores of the plurality of logical partitions based at least in part on a timestamp of the measurement of the second metric;
Sending the measurement of the second metric from the logical partition to a corresponding aggregation subsystem comprising the in-memory data store based at least in part on the mapping. A computer-implemented method according to claim 1.

84.メトリクスマッピングレジストリを更新して、前記判定された1つまたは複数のデータストア内に保存されている前記測定値を受けて、前記測定値が前記期間において信頼できることを示すこと、をさらに含む、条項82または83に記載のコンピュータにより実装される方法。   84. Further comprising updating a metrics mapping registry to receive the measured value stored in the determined one or more data stores to indicate that the measured value is reliable in the time period. 84. A computer implemented method according to 82 or 83.

85.1つまたは複数のサービスを実装するように構成された少なくとも1つのコンピューティングデバイスを備えるシステムであって、前記1つまたは複数のサービスが、
時間間隔においてメトリクスの測定値データを検索するリクエストを受信し、
前記リクエストの情報に少なくとも部分的に基づいて、前記測定値データが保存されている1つまたは複数のデータストアを判定し、
前記リクエストに対するレスポンスを生成し、
前記リクエストが、前記生成されたレスポンスで信頼できるデータが提供されるべきであることを示している場合、前記生成されたレスポンスは、前記測定値データを信頼できる測定値データに限定し、
前記リクエストが、前記生成されたレスポンスで信頼できるデータが提供されるべきであると示さない場合、前記生成されたレスポンスは、信頼できる測定値データに限定しない、ように構成された、前記システム。
85. A system comprising at least one computing device configured to implement one or more services, the one or more services comprising:
Receive a request to retrieve metric measurement data in a time interval,
Determining one or more data stores in which the measurement data is stored based at least in part on the information in the request;
Generate a response to the request,
If the request indicates that reliable data should be provided in the generated response, the generated response limits the measurement data to reliable measurement data;
The system configured such that if the request does not indicate that reliable data should be provided in the generated response, the generated response is not limited to reliable measurement data.

86.前記リクエストの前記情報が、検索される前記測定値データは信頼できることを示す情報を含む、条項85に記載のシステム。   86. 86. The system of clause 85, wherein the information of the request includes information indicating that the measured value data retrieved is reliable.

87.前記リクエストの前記情報が、検索される測定値データは前記信頼できる測定値データに限定されないことを示す情報を含む、条項85〜86に記載のシステム。   87. 87. A system according to clauses 85-86, wherein the information of the request includes information indicating that the retrieved measurement data is not limited to the reliable measurement data.

88.前記リクエストの前記情報が、前記測定値データに対するメトリクス識別子及び時間情報を含み、
前記1つまたは複数のサービスが、さらに、
少なくとも前記時間間隔において、前記測定値データが保存されている前記1つまたは複数のデータストアを示すマッピングを取得し、
前記メトリクス識別子を用いて、前記測定値データが保存されている前記1つまたは複数のデータストアを識別する、ように構成された、条項85〜87に記載のシステム。
88. The information of the request includes a metrics identifier and time information for the measurement data;
The one or more services further comprises:
Obtaining a mapping indicating the one or more data stores in which the measurement data is stored at least in the time interval;
90. The system of clauses 85-87, configured to use the metrics identifier to identify the one or more data stores in which the measurement data is stored.

89.前記1つまたは複数のサービスが、さらに、
第2のメトリクスの測定値を保存する第2のリクエストを受信することと、
前記第2のリクエストの情報に少なくとも部分的に基づいて、前記第2のメトリクスの測定値データは時間間隔において信頼できることを判定することであって、前記第2のメトリクスの前記測定値データは、前記第2のメトリクスの前記測定値を含む、前記判定することと、
前記第2のメトリクスの前記測定値を、前記時間間隔において信頼できるものとして、第2のメモリ内データストアに保存すること、を行うように構成された、条項85〜88のいずれかに記載のシステム。
89. The one or more services further comprises:
Receiving a second request to store a second metric measurement;
Determining, based at least in part on the information of the second request, that the measurement data of the second metric is reliable in a time interval, wherein the measurement data of the second metric is: Said determining comprising said measured value of said second metric;
89. Any of clauses 85-88, wherein the measurement of the second metric is stored in a second in-memory data store as reliable in the time interval. system.

90.前記第2のメトリクスの前記測定値を保存する前記第2のリクエストが、前記第2のメトリクスの前記測定値及び前記第2のメトリクスの前記測定値の属性を指定するメタデータを含み、
前記1つまたは複数のサービスが、さらに、
前記メタデータに少なくとも部分的に基づいて、前記第2のメトリクスの前記測定値に対するメトリクス識別子を生成し、
前記第2のメトリクスの前記測定値に対する前記メトリクス識別子に少なくとも部分的に基づいて、複数の論理パーティションのうちのあるパーティションを、前記第2のメトリクスの前記測定値を配置するために選択し、
前記パーティションからの前記測定値を、前記第2のメモリ内データストアを備える対応する集計システムに送信する、ように構成された、条項89に記載のシステム。
90. The second request to store the measurement value of the second metric includes metadata specifying the measurement value of the second metric and the attribute of the measurement value of the second metric;
The one or more services further comprises:
Generating a metric identifier for the measurement of the second metric based at least in part on the metadata;
Selecting a partition of a plurality of logical partitions to place the measurement of the second metric based at least in part on the metric identifier for the measurement of the second metric;
90. The system of clause 89, configured to send the measurements from the partition to a corresponding aggregation system comprising the second in-memory data store.

91.前記1つまたは複数のサービスが、さらに、
前記第2のメモリ内データストアから、前記第2のメトリクスの期限切れの測定値を削除し、
前記第2のメトリクスの前記測定値を前記第2のメトリクスの期限切れしていない測定値と、前記第2のメトリクスの前記測定値を保存するために集計する、ように構成された、条項90に記載のシステム。
91. The one or more services further comprises:
Deleting an expired measurement of the second metric from the second in-memory data store;
Clause 90, configured to aggregate the measurements of the second metric to save the unexpired measurements of the second metric and the measurements of the second metric. The system described.

92.前記1つまたは複数のサービスが、さらに、
前記第2のメトリクスの前記測定値をバイナリシリアライゼーションフォーマットでシリアライズし、
前記バイナリシリアライゼーションフォーマットの前記測定値が、前記メトリクス識別子、前記第2のメトリクスの前記測定値のタイムスタンプ、前記第2のメトリクスの前記測定値の測定の単位及び前記第2のメトリクスの前記測定値自体を含むようにする、ように構成された、条項90または91に記載のシステム。
92. The one or more services further comprises:
Serializing the measured value of the second metric in a binary serialization format;
The measurement value in the binary serialization format includes the metric identifier, a timestamp of the measurement value of the second metric, a unit of measurement of the measurement value of the second metric, and the measurement value of the second metric. 92. A system according to clause 90 or 91 configured to include itself.

93.非一時的なコンピュータ可読ストレージ媒体であって、実行可能な命令を保存し、前記命令は、コンピュータシステムの1つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、少なくとも、
メトリクスの測定値データを検索するリクエストを受信すること、
前記リクエストの情報に少なくとも部分的に基づいて、前記測定値データが保存されているメモリ内データストアを識別すること、
前記リクエストの前記情報が、信頼できる測定値が提供されるべきであることを示している場合、信頼できる測定値データを提供すること、
前記情報が信頼できる測定値が提供されるべきであると示していない場合、前記測定値データが信頼できるかどうかに関わらず、前記測定値データを提供すること、
を行わせる、前記非一時的なコンピュータ可読ストレージ媒体。
93. A non-transitory computer readable storage medium that stores executable instructions that when executed by one or more processors of the computer system, at least in the computer system,
Receiving a request to retrieve metrics measurement data,
Identifying an in-memory data store in which the measurement data is stored based at least in part on the information of the request;
Providing reliable measurement data if the information of the request indicates that a reliable measurement should be provided;
Providing the measurement data regardless of whether the measurement data is reliable, if the information does not indicate that a reliable measurement should be provided;
Said non-transitory computer readable storage medium.

94.前記命令は、さらに、前記コンピュータシステムに、
第2のメトリクスの測定値を保存する第2のリクエストを受信することであって、前記第2のリクエストは、前記第2のメトリクスの前記測定値を指定し、時間間隔が経過する前に収集された前記第2のメトリクスの測定値は前記時間間隔において信頼できることを示す情報を有さない、前記第2のリクエストを受信することと、
前記リクエストは前記第2のメトリクスの前記測定値が前記時間間隔において信頼できることを示す情報に欠けていることを受けて、前記第2のメトリクスの前記測定値を、第2のメモリ内データストアに、前記時間間隔において信頼できるものではないものとして保存することと、を行わせる、条項93に記載の非一時的なコンピュータ可読ストレージ媒体。
94. The instructions are further transmitted to the computer system.
Receiving a second request to store a measure of a second metric, wherein the second request specifies the measure of the second metric and collects before the time interval elapses Receiving the second request, wherein the measured value of the second metric made does not have information indicating that it is reliable in the time interval;
In response to the request lacking information indicating that the measured value of the second metric is reliable in the time interval, the measured value of the second metric is transferred to a second in-memory data store. 94. The non-transitory computer readable storage medium of clause 93, wherein the non-transitory storage is performed as unreliable during the time interval.

95.前記リクエストの前記情報が、検索される前記メトリクスの前記測定値データは信頼できる測定値であるべきと示すパラメータを指定する、条項93または94に記載の非一時的なコンピュータ可読ストレージ媒体。   95. 95. A non-transitory computer readable storage medium according to clause 93 or 94, wherein the information of the request specifies a parameter indicating that the measurement data of the metric to be retrieved should be a reliable measurement.

96.前記命令は、さらに、前記コンピュータシステムに、
前記リクエストの前記情報に少なくとも部分的に基づいて、前記測定値データが保存されている前記メモリ内データストアを示すマッピングを取得することと、
前記リクエストの前記情報を用いて、前記マッピングから、前記測定値データが保存されている前記メモリ内データストアを識別することと、を行わせる、条項93〜96のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
96. The instructions are further transmitted to the computer system.
Obtaining a mapping indicating the in-memory data store in which the measurement data is stored, based at least in part on the information of the request;
99. The non-transitory according to any of clauses 93 to 96, wherein the information of the request is used to identify, from the mapping, the in-memory data store in which the measurement value data is stored. Computer-readable storage medium.

97.前記リクエストの前記情報が、
前記マッピングを取得するのに使用可能な時間情報と、
前記測定値データが保存されている前記メモリ内データストアを、前記マッピングから識別するのに使用可能なメトリクス識別子と、を含む、条項96に記載の非一時的なコンピュータ可読ストレージ媒体。
97. The information of the request is
Time information available to obtain the mapping;
99. The non-transitory computer readable storage medium of clause 96, comprising: a metrics identifier that can be used to identify the in-memory data store in which the measurement data is stored from the mapping.

98.前記命令は、さらに、前記コンピュータシステムに、
第2のメトリクスの測定値を保存する第2のリクエストを受信することであって、前記第2のリクエストは、前記第2のメトリクスの測定値データが時間間隔において信頼できることを示す情報を含む、前記第2のリクエストを受信することと、
前記第2のメトリクスの前記測定値を、第2のメモリ内データストアに、信頼できるものとして保存することであって、前記第2のメトリクスの信頼できる測定値を取得するリクエストに応答して戻す、前記保存することと、を行わせる、条項93〜97のいずれかに記載の非一時的なコンピュータ可読ストレージ媒体。
98. The instructions are further transmitted to the computer system.
Receiving a second request to store a measurement of a second metric, the second request including information indicating that the measurement data of the second metric is reliable in a time interval; Receiving the second request;
Storing the measured value of the second metric in a second in-memory data store as trusted and returning in response to a request to obtain a reliable measured value of the second metric The non-transitory computer readable storage medium according to any of clauses 93 to 97, wherein the storage is performed.

99.前記命令は、さらに、前記コンピュータシステムに、
前記第2のリクエストに含まれる前記情報に少なくとも部分的に基づいて、前記第2のメトリクスの前記測定値に対するメトリクス識別子を生成することと、
前記第2のメトリクスの前記測定値に対する前記メトリクス識別子を用いて、前記第2のメトリクスの前記測定値を配置するために、複数のパーティションのうちのあるパーティションを識別することと、
前記パーティションからの前記測定値を前記第2のメモリ内データストアに送信することと、を行わせる、条項98に記載の非一時的なコンピュータ可読ストレージ媒体。
99. The instructions are further transmitted to the computer system.
Generating a metric identifier for the measurement of the second metric based at least in part on the information included in the second request;
Identifying a partition of a plurality of partitions to place the measurement of the second metric using the metric identifier for the measurement of the second metric;
99. The non-transitory computer readable storage medium of clause 98, causing the measurement from the partition to be sent to the second in-memory data store.

100.前記第2のリクエストに含まれる前記情報が、前記第2のメトリクスの前記測定値のタイムスタンプを指定し、
前記複数のパーティションのうちの前記パーティションの前記識別が、さらに、前記第2のメトリクスの前記測定値の前記タイムスタンプに少なくとも部分的に基づく、条項99に記載の非一時的なコンピュータ可読ストレージ媒体。
100. The information included in the second request specifies a timestamp of the measurement of the second metric;
100. The non-transitory computer readable storage medium of clause 99, wherein the identification of the partition of the plurality of partitions is further based at least in part on the timestamp of the measurement of the second metric.

様々な実施形態はさらに、多種多様な動作環境で実装することができ、場合によっては、1つまたは複数のユーザコンピュータ、コンピューティングデバイスまたは多数のアプリケーションのうちのいずれかを操作するために使用することができる処理デバイスを含み得る。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを起動させるデスクトップ型、ラップトップ型、またはタブレットコンピュータ、ならびに、モバイルソフトウェアを起動させ、多数のネットワークおよびメッセージプロトコルをサポートすることが可能な携帯電話、無線、および携帯型デバイスなど、あらゆる数の汎用パーソナルコンピュータを含み得る。かかるシステムは、様々な商用的に入手可能なオペレーティングシステムならびに開発及びデータベース管理などの目的のための他の既知のアプリケーションを稼働させる、いくつかのワークステーションもまた含み得る。これらのデバイスは、ダミー端末、シンクライアント、ゲーム機及びネットワークを介して通信することができる他のデバイスなどの、他の電子デバイスもまた含み得る。これらのデバイスは、仮想マシン、ハイパーバイザー及び、ネットワークを介して通信可能である他の仮想デバイスなどの仮想デバイスも含み得る。   Various embodiments can further be implemented in a wide variety of operating environments, and in some cases used to operate one or more user computers, computing devices or multiple applications. Can include a processing device. A user or client device can launch a desktop, laptop, or tablet computer that launches a standard operating system, as well as a mobile phone, wireless that can launch mobile software and support multiple network and message protocols And any number of general purpose personal computers, such as portable devices. Such a system may also include a number of workstations running various commercially available operating systems and other known applications for purposes such as development and database management. These devices may also include other electronic devices, such as dummy terminals, thin clients, game consoles, and other devices that can communicate over a network. These devices may also include virtual devices such as virtual machines, hypervisors, and other virtual devices that can communicate over a network.

本開示の様々な実施形態は、伝送制御プロトコル/インターネットプロトコル(「TCP/IP」)、ユーザデータグラムプロトコル(「UDP」)、開放型システム間相互接続(「OSI」)モデルの各層で動作するプロトコル、ファイル転送プロトコル(「FTP」)、ユニバーサルプラグアンドプレイ(「UPNP」)、ネットワークファイルシステム(「NFS」)、共通インターネットファイルシステム(「CIFS」)およびAppleTalkなどの商用的に入手可能な各種プロトコルのいずれかを用いる通信をサポートするのに、当業者に知られている少なくとも1つのネットワークを利用している。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク及びそれらの任意の組み合わせであってよい。   Various embodiments of the present disclosure operate at each layer of Transmission Control Protocol / Internet Protocol (“TCP / IP”), User Datagram Protocol (“UDP”), and Open Systems Interconnection (“OSI”) models. Various commercially available protocols such as protocol, file transfer protocol (“FTP”), universal plug and play (“UPNP”), network file system (“NFS”), common Internet file system (“CIFS”), and AppleTalk At least one network known to those skilled in the art is utilized to support communication using any of the protocols. The network may be, for example, a local area network, a wide area network, a virtual private network, the Internet, an intranet, an extranet, a public switched telephone network, an infrared network, a wireless network, a satellite network, and any combination thereof.

ウェブサーバを利用する実施形態において、ウェブサーバは、ハイパーテキストトランスファープロトコル(「HTTP」)サーバ、FTPサーバ、コモンゲートウェイインタフェース(「CGI」)サーバ、データサーバ、Java(登録商標)サーバ、Apacheサーバ及びビジネスアプリケーションサーバを含む、多様なサーバまたは中間層アプリケーションのうちのいずれかを運用することができる。サーバ(複数可)は、ユーザデバイスからのリクエストに応答して、Java(登録商標)、C、C♯またはC++などの任意のプログラミング言語またはRuby、PHP、Perl、PythonまたはTCL及びそれらの組み合わせなどの任意のスクリプト言語で記述された1つまたは複数のスクリプトまたはプログラムとして実装され得る1つまたは複数のウェブアプリケーションを実行することなどによって、プログラムまたはスクリプトも実行可能でもあり得る。サーバ(複数可)は、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)及びIBM(登録商標)から市販されているものならびにMySQL、Postgres、SQLite、MongoDBなどのオープンソースサーバ、ならびに保存、検索、構造化または非構造化データにアクセスが可能な任意の他のサーバを、限定することなしに含むデータベースサーバも含み得る。データベースサーバは、テーブルベースのサーバ、ドキュメントベースのサーバ、非構造化サーバ、関係サーバ、非関係サーバ、または、これらの組み合わせ及び/または他のデータベースサーバの組み合わせを含み得る。   In an embodiment utilizing a web server, the web server includes a hypertext transfer protocol (“HTTP”) server, an FTP server, a common gateway interface (“CGI”) server, a data server, a Java server, an Apache server, and Any of a variety of servers or middle tier applications, including business application servers, can be operated. The server (s) can respond to requests from user devices in any programming language such as Java, C, C # or C ++ or Ruby, PHP, Perl, Python or TCL and combinations thereof A program or script may also be executable, such as by running one or more web applications that may be implemented as one or more scripts or programs written in any scripting language. Server (s) are commercially available from Oracle (R), Microsoft (R), Sybase (R) and IBM (R), as well as open source servers such as MySQL, Postgres, SQLite, MongoDB, As well as database servers including, without limitation, any other server capable of storing, retrieving, accessing structured or unstructured data. Database servers may include table-based servers, document-based servers, unstructured servers, relational servers, non-relational servers, or combinations of these and / or other database server combinations.

環境は、上述の種々のデータストアおよび他のメモリおよびストレージ媒体を含み得る。これらは、様々な位置、例えば、コンピュータのうちの1つまたは複数にローカル(かつ/またはそこに存在する)の、またはネットワーク上のコンピュータのうちのいくつかまたはすべてからリモートのストレージ媒体上に存在し得る。特定の組の実施形態において、情報は、当業者に既知のストレージエリアネットワーク(「SAN」)に存在し得る。同様に、コンピュータ、サーバまたは他のネットワークデバイスによる機能を実行するための任意の必要なファイルは、必要に応じて、ローカルにかつ/またはリモートに保存され得る。システムがコンピュータ化デバイスを含む場合、そのようなデバイスはそれぞれ、バスを介して電気的に連結され得るハードウェア要素を含むことができ、該要素は、例えば、少なくとも1つの中央処理装置(「CPU」または「プロセッサ」)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーンまたはキーパッド)及び少なくとも1つの出力デバイス(例えば、ディスプレイデバイス、プリンタまたはスピーカ)を含む。そのようなシステムは、1つまたは複数のストレージデバイス、例えば、ディスクドライブ、光学式記憶デバイスおよびソリッドステートストレージデバイス、例えば、ランダムアクセスメモリ(「RAM」)または読み出し専用メモリ(「ROM」)、ならびに取り外し可能な媒体デバイス、メモリカード、フラッシュカードなども含み得る。   The environment may include the various data stores and other memory and storage media described above. They reside on storage media that are remote from various locations, eg, one or more of the computers local (and / or present), or from some or all of the computers on the network. Can do. In a particular set of embodiments, the information may reside in a storage area network (“SAN”) known to those skilled in the art. Similarly, any necessary files for performing functions by a computer, server or other network device may be stored locally and / or remotely as desired. Where the system includes a computerized device, each such device can include a hardware element that can be electrically coupled via a bus, such as, for example, at least one central processing unit (“CPU”). Or “processor”), at least one input device (eg, mouse, keyboard, controller, touch screen or keypad) and at least one output device (eg, display device, printer or speaker). Such systems include one or more storage devices such as disk drives, optical storage devices and solid state storage devices such as random access memory (“RAM”) or read only memory (“ROM”), and It may also include removable media devices, memory cards, flash cards and the like.

そのような装置はまた、上述のように、コンピュータ可読ストレージ媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)及び作業メモリを含み得る。コンピュータ可読ストレージ媒体リーダは、コンピュータ可読ストレージ媒体と接続され得るか、またはコンピュータ可読ストレージ媒体を受信するよう構成され得、リモート、ローカル、固定及び/または取り外し可能なストレージデバイス、ならびにコンピュータ可読情報を一時的にかつ/またはより恒久的に含有し、保存し、送信し、かつ検索するためのストレージ媒体を表す。システム及び様々なデバイスは、通常、いくつかのソフトウェアアプリケーション、モジュール、サービスまたはオペレーティングシステム及びアプリケーションプログラム、例えば、クライアントアプリケーションまたはウェブブラウザを含む少なくとも1つのワーキングメモリデバイス内で見つけられる他の要素も含む。代替実施形態が、上述のものからの多数の変形を有し得ることを理解されたい。例えば、特製のハードウェアもまた使用可能である、かつ/または特定の要素をハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、もしくはその両方に実装することができる。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続が用いられ得る。   Such an apparatus may also include a computer readable storage media reader, a communication device (eg, a modem, a network card (wireless or wired), an infrared communication device, etc.) and a working memory, as described above. The computer readable storage medium reader may be connected to or configured to receive a computer readable storage medium and store remote, local, fixed and / or removable storage devices and computer readable information temporarily. Represents a storage medium for containing, storing, transmitting and retrieving automatically and / or more permanently. The system and various devices typically also include several software applications, modules, services or operating systems and other programs that can be found in at least one working memory device including an application program, eg, a client application or a web browser. It should be understood that alternative embodiments may have numerous variations from those described above. For example, custom hardware can also be used and / or certain elements can be implemented in hardware, software (including portable software such as applets), or both. In addition, connections to other computing devices such as network input / output devices may be used.

符号または符号の一部を含むためのストレージ媒体及びコンピュータ可読媒体は、RAM、ROM、電子的消去可能プログラマブル読出し専用メモリ(「EEPROM」)、フラッシュメモリまたは他のメモリ技術、コンパクトディスク読出し専用メモリ(「CD−ROM」)、デジタルバーサタイルディスク(DVD)、もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または所望の情報を記憶するために使用することができ、かつシステムデバイスによってアクセスされ得る任意の他の媒体をはじめとする、限定するものではないが、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の保存及び/または送信のために任意の方法または技術で実装される揮発性及び非揮発性、可換型及び非可換型媒体などのストレージ媒体及び通信媒体を含む当該術分野において既知の、または使用される任意の適切な媒体を含むことができる。本明細書に提供される本開示及び教示に基づいて、当業者であれば、様々な実施形態を実装する他の様式及び/または方法を理解する。   Storage media and computer readable media for including codes or portions of codes include RAM, ROM, electronically erasable programmable read only memory ("EEPROM"), flash memory or other memory technology, compact disk read only memory ( "CD-ROM"), digital versatile disk (DVD), or other optical storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device, or can be used to store desired information And for storing and / or transmitting information such as, but not limited to, computer readable instructions, data structures, program modules or other data, including but not limited to any other medium that can be accessed by the system device Any way Or any suitable medium known or used in the art, including storage media and communication media such as volatile and non-volatile, replaceable and non-exchangeable media implemented in the technology be able to. Based on the present disclosure and teachings provided herein, one of ordinary skill in the art will recognize other ways and / or methods to implement various embodiments.

したがって、明細書及び図面は、限定する意味ではなくて例示的なものとみなされる。しかしながら、種々の修正及び変更が、特許請求の範囲に記載される本発明のより広範な精神と範囲から逸脱することなく、そこになされ得ることは明らかであろう。   The specification and drawings are accordingly to be regarded in an illustrative rather than a restrictive sense. However, it will be apparent that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the claims.

他の変形例は、本開示の精神の範囲内にある。開示された技術は、様々な修正及び代替構成が可能であるが、特定の例示の実施形態が図面に示され、詳細に上述されている。しかしながら、本発明を特定の形式または開示される形式に限定する意図はなく、しかし、むしろ、添付の特許請求の範囲において定義される本発明の精神及び範囲内に収まる全ての修正、代替構造及び等価物を網羅するところに意図があるということが理解されるべきである。   Other variations are within the spirit of the present disclosure. While the disclosed technology is susceptible to various modifications and alternative constructions, certain illustrated embodiments are shown in the drawings and have been described above in detail. However, it is not intended to limit the invention to the particular form or form disclosed, but rather, all modifications, alternative constructions and within the spirit and scope of the invention as defined in the appended claims. It should be understood that the intent is to cover equivalents.

開示される実施形態を説明する文脈における(特に以下の特許請求の範囲の文脈における)「a」、「an」及び「the」という用語ならびに同様の指示語の使用は、本明細書において別段の指示がない限り、または文脈に明らかに矛盾するものでない限り、単数及び複数の双方を網羅すると解釈される。「comprising(備える)」、「having(有する)」、「including(含む)」及び「containing(含有する)」という用語は、特に断りのない限り、オープンエンドの用語(すなわち、「含むが、これらに限定されない」ことを意味する)として解釈されるべきである。修飾されていないかつ物理的な接続を指す用語「connected(接続され)」は、介在するものが存在しても、部分的にまたは全体的に含まれ、付着されもしくは1つに結合することとして解釈されるべきである。本明細書中の値の範囲の列挙は、本明細書において他に示されない限り、単に、範囲内に入るそれぞれ別個の値に個々に言及する速記方法として役立つように意図され、それが個々に本明細書に記載されているかのように、各個別の値は、本明細書に組み込まれる。用語「セット」(例えば、「アイテムのセット」)または「サブセット」の使用は、別段の記載がない限りまたは文脈によって矛盾しない限り、1つまたは複数のメンバーを含む非空コレクションとして解釈されるべきである。さらに、別段の記載がない限りまたは文脈によって矛盾しない限り、対応するセットの「サブセット」という用語は、必ずしも対応するセットの適切なサブセットを意味するものではないが、サブセット及び対応するセットは等価であり得る。   The use of the terms “a”, “an” and “the” and similar directives in the context of describing the disclosed embodiments (especially in the context of the following claims) is Unless otherwise indicated, or unless clearly contradicted by context, it is intended to cover both singular and plural. The terms “comprising”, “having”, “including” and “containing” are open-ended terms (ie, including, Meaning “not limited to”). The term “connected”, which refers to an unmodified and physical connection, is included as partly or wholly, attached or bound to one, even in the presence of intervening ones. Should be interpreted. The recitation of value ranges herein is intended to serve merely as a shorthand way to individually refer to each distinct value falling within the range, unless otherwise indicated herein. Each individual value is incorporated herein as if described herein. Use of the term “set” (eg, “set of items”) or “subset” should be construed as a non-empty collection containing one or more members, unless otherwise stated or unless otherwise contradicted by context. It is. Further, unless otherwise stated or unless otherwise contradicted by context, the term “subset” of a corresponding set does not necessarily mean an appropriate subset of the corresponding set, but a subset and the corresponding set are equivalent. possible.

特に断りのない限り、または文脈によって明らかに矛盾しない限り、「A、B及びCの少なくとも1つ」または「A、B及びCの少なくとも1つ」の形の句のような接続言語は、項目、用語などがAまたはBまたはCのいずれか、もしくはAとBとCのセットの空でないサブセットのいずれかであり得ることを示すために一般的に使用される文脈で理解される。例えば、3つのメンバーを有するセットの実例では、接続言語「A、B及びCの少なくとも1つ」及び「A、B及びCの少なくとも1つ」は、以下のセット{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}のいずれかを指す。したがって、そのような接続言語は、一般に、ある実施形態が、Aの少なくとも1つ、Bの少なくとも1つ及びCの少なくとも1つがそれぞれ存在することを必要とすることを含意することは意図していない。   Unless otherwise noted, or unless otherwise clearly contradicted by context, a connected language such as a phrase in the form of “at least one of A, B and C” or “at least one of A, B and C” Are understood in the context commonly used to indicate that a term or the like may be either A or B or C, or a non-empty subset of the set of A, B and C. For example, in the example of a set having three members, the connection languages “at least one of A, B, and C” and “at least one of A, B, and C” are the following sets {A}, {B}, Any of {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Accordingly, such connection languages are generally intended to imply that some embodiments require that at least one of A, at least one of B, and at least one of C each exist. Absent.

本明細書に記載される処理の操作は、本明細書において別途指示されない限り、または文脈によって明らかに矛盾しない限り、任意の適切な順序で行うことができる。本明細書に記載された処理(もしくは変形及び/またはその組み合わせ)は、実行可能な命令で構成された1つまたは複数のコンピュータシステムの制御下で実行され得、ハードウェアまたはその組み合わせにより1つまたは複数のプロセッサ上で集合的に実行するコード(例えば、実行可能な命令、1つまたは複数のコンピュータプログラムまたは1つまたは複数のアプリケーション)として実装され得る。コードは、コンピュータ可読ストレージ媒体に、例えば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形で保存され得る。コンピュータ可読ストレージ媒体は、非一時的であり得る。   The operations described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The processes (or variations and / or combinations thereof) described herein may be performed under the control of one or more computer systems comprised of executable instructions, one by hardware or a combination thereof. Or it may be implemented as code (eg, executable instructions, one or more computer programs or one or more applications) that collectively execute on multiple processors. The code may be stored on a computer-readable storage medium, for example in the form of a computer program comprising a plurality of instructions that can be executed by one or more processors. The computer readable storage medium may be non-transitory.

本明細書内に提供される任意及びすべての実施例、または例示的言語(例えば、「など」)の使用は、単に本発明の実施形態をより良く明らかにすることが意図され、別段の請求がない限り、本発明の範囲に対して制限を課すものではない。明細書の用語は、本発明の実施に不可欠な任意の非請求の要素を示すものと解釈されるべきではない。   The use of any and all examples or exemplary languages (eg, “etc.”) provided within this specification is intended only to better clarify embodiments of the invention, and Unless otherwise specified, no limitation is imposed on the scope of the present invention. No language in the specification should be construed as indicating any non-claimed element essential to the practice of the invention.

本発明を実施するために本発明者らに知られている最良の形態を含む本発明の実施形態を本明細書に記載する。これらの好ましい実施形態の変形例は、前述の説明を読めば当業者に明らかになるであろう。本発明者らは、当業者がこのような変形例を適切に使用することを期待しており、本発明者らは、本発明の実施形態が本明細書に具体的に記載されたものとは別の方法で実施されることを意図する。したがって、本発明の範囲は、適用法によって許容されるように、本明細書に添付された特許請求の範囲に記載された主題の全ての改変及び均等物を含む。さらに、本明細書に別段の指示がない限り、または文脈に明らかに矛盾するものでない限り、そのすべての考え得る変形形態での上記要素の任意の組合せが本発明に包含される。   Embodiments of this invention are described herein, including the best mode known to the inventors for carrying out the invention. Variations of these preferred embodiments will become apparent to those skilled in the art after reading the foregoing description. The inventors expect that those skilled in the art will appropriately use such variations, and that the inventors have specifically described embodiments of the invention herein. Is intended to be implemented in other ways. Accordingly, the scope of the invention includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the invention unless otherwise indicated herein or otherwise clearly contradicted by context.

各文献が個々にかつ具体的に参照により組み込まれることが示され、その全体が本明細書に記載されたかのように本明細書で引用した刊行物、特許出願及び特許を含む全ての参考文献は、本明細書と同程度に、参照により組み込まれる。   Each reference is shown individually and specifically incorporated by reference, all references including publications, patent applications and patents cited herein as if fully set forth herein. Are incorporated by reference to the same extent as herein.

Claims (15)

1つまたは複数のサービスを実装するように構成された少なくとも1つのコンピューティングデバイスを備えるシステムであって、前記1つまたは複数のサービスが、
メトリクスの複数の測定値を保存するリクエストを受信することであって、前記リクエストは、前記メトリクスの他の測定値を保存するための先のリクエストで受信されたメタデータと同一のメタデータを有さない、前記リクエストを受信することと、
前記複数の測定値に対するメトリクス識別子を判定することと、
前記メトリクス識別子を用いて前記複数の測定値を保存し、前記メトリクスの測定値を検索するための、前記メタデータを指定しているリクエストに応答する情報が、前記複数の測定値及び前記他の測定値の少なくとも両方を含むようにすることと、
を行うように構成された、前記システム。
A system comprising at least one computing device configured to implement one or more services, the one or more services comprising:
Receiving a request to store a plurality of measurements of a metric, the request having the same metadata as received in a previous request to store other measurements of the metric. Do not receive the request;
Determining a metric identifier for the plurality of measurements;
The response to the request designating the metadata for storing the plurality of measurement values using the metric identifier and retrieving the measurement value of the metric includes the plurality of measurement values and the other measurement values. Including at least both measurements,
The system configured to perform:
前記複数の測定値を保存する前記リクエストが、前記メトリクス識別子を含む、請求項1に記載のシステム。   The system of claim 1, wherein the request to store the plurality of measurements includes the metrics identifier. 前記1つまたは複数のサービスが、さらに、前記判定されたメトリクス識別子に少なくとも部分的に基づいて、前記複数の測定値を前記他の測定値と集計するように構成された、請求項1または2に記載のシステム。   The one or more services are further configured to aggregate the plurality of measurements with the other measurements based at least in part on the determined metric identifier. The system described in. 前記判定された完全修飾メトリクス識別子を用いてメトリクスデータを保存することが、
前記複数の測定値のうちの前記測定値の前記メトリクス識別子及びタイムスタンプを用いて、前記複数の測定値を1つまたは複数のパーティションに分割することと、
前記複数の測定値の保存のために、前記1つまたは複数のパーティションからの前記複数の測定値を複数の集計サブシステムのうちの1つまたは複数の集計サブシステムに送信することと、
前記複数の測定値を、前記1つまたは複数の集計サブシステムの1つまたは複数の集計データストア内に保存することと、を含む、請求項1〜3のいずれか一項に記載のシステム。
Storing metric data using the determined fully qualified metric identifier;
Dividing the plurality of measurement values into one or more partitions using the metric identifier and timestamp of the measurement values of the plurality of measurement values;
Sending the plurality of measurements from the one or more partitions to one or more of a plurality of aggregation subsystems for storage of the plurality of measurements;
Storing the plurality of measurements in one or more aggregation data stores of the one or more aggregation subsystems.
前記1つまたは複数のサービスが、さらに、
メトリクスマッピングレジストリから、前記複数の測定値のうちの前記測定値のタイムスタンプに少なくとも部分的に基づいて、前記1つまたは複数のパーティションと前記複数の集計サブシステムの1つまたは複数のマッピングを取得し、
前記1つまたは複数のマッピングに少なくとも部分的に基づいて、前記複数の集計サブシステムから1つまたは複数の集計サブシステムを選択するように構成された、請求項4に記載のシステム。
The one or more services further comprises:
Obtaining one or more mappings of the one or more partitions and the plurality of aggregation subsystems from a metrics mapping registry based at least in part on a timestamp of the measurements of the plurality of measurements And
The system of claim 4, configured to select one or more aggregation subsystems from the plurality of aggregation subsystems based at least in part on the one or more mappings.
前記1つまたは複数のサービスが、さらに、
前記複数の測定値を検索する第2のリクエストを受信することであって、前記リクエストは、前記メタデータを指定する、前記第2のリクエストを受信することと、
前記メタデータに少なくとも部分的に基づいて、前記メトリクス識別子を判定することと、
前記メトリクス識別子及び前記メタデータに指定された1つまたは複数の期間を用いて、前記複数の測定値及び前記他の測定値の少なくとも両方を検索することと、
を行うように構成された、請求項1〜5のいずれか一項に記載のシステム。
The one or more services further comprises:
Receiving a second request to retrieve the plurality of measurements, the request specifying the metadata; receiving the second request;
Determining the metrics identifier based at least in part on the metadata;
Retrieving at least both the plurality of measurements and the other measurements using the metric identifier and one or more time periods specified in the metadata;
The system according to claim 1, wherein the system is configured to perform.
前記複数の測定値がバイナリシリアライゼーションフォーマットで保存され、前記バイナリシリアライゼーションフォーマットは、前記メトリクス識別子、メトリクスデータのタイムスタンプ、前記メトリクスデータに対する測定の単位、及び前記メトリクスデータによって表されるメトリクスの測定値を含む、請求項1〜6のいずれか一項に記載のシステム。   The plurality of measurements are stored in a binary serialization format, the binary serialization format including the metric identifier, a metric data timestamp, a unit of measurement for the metric data, and a metric measurement value represented by the metric data. The system according to claim 1, comprising: 前記メトリクス識別子が、ハッシュ関数及び前記メタデータ内に指定された1つまたは複数のメトリクス属性を用いて生成された、請求項1〜7のいずれか一項に記載のシステム。   The system according to claim 1, wherein the metric identifier is generated using a hash function and one or more metric attributes specified in the metadata. コンピュータシステムに、少なくとも、
メトリクスの1つまたは複数の測定値を保存する第1のアプリケーションプログラミングインタフェース呼び出しを受信する手順であって、前記第1のアプリケーションプログラミングインタフェース呼び出しは、前記1つまたは複数の測定値及び前記1つまたは複数の測定値に対するメトリクス識別子を指定し、前記メトリクス識別子は、前記メトリクスの他の測定値を保存するための先のリクエストに含まれるメタデータに少なくとも部分的に基づいて生成される、前記第1のアプリケーションプログラミングインタフェース呼び出しを受信する手順と、
前記メトリクス識別子を用いて、前記1つまたは複数の測定値を保存するデータストアを識別する手順と、
前記1つまたは複数の測定値及び前記他の測定値を、前記メタデータまたは完全修飾メトリクス識別子を含むリクエストに応答して取得することができるように、前記1つまたは複数の測定値を前記識別されたデータストアに保存する手順と、
を実行させるためのプログラム。
At least in the computer system
Receiving a first application programming interface call that saves one or more measurements of metrics, wherein the first application programming interface call includes the one or more measurements and the one or more Specifying a metric identifier for a plurality of measurements, wherein the metric identifier is generated based at least in part on metadata included in a previous request to store other measurements of the metric. Receiving the application programming interface call of
Using the metric identifier to identify a data store storing the one or more measurements;
Identifying the one or more measurements and the other measurements so that the one or more measurements can be obtained in response to a request including the metadata or a fully qualified metric identifier; To save to a designated datastore,
A program for running
さらに、前記コンピュータシステムに、
前記メトリクスの複数の測定値を検索する第2のアプリケーションプログラミングインタフェース呼び出しを受信する手順であって、前記第2のアプリケーションプログラミングインタフェース呼び出しは、前記メタデータを含む、前記第2のアプリケーションプログラミングインタフェース呼び出しを受信する手順と、
前記含まれるメタデータを用いて、前記メトリクス識別子を生成する手順と、
前記生成されたメトリクス識別子及び前記メタデータに指定された1つまたは複数の期間に少なくとも部分的に基づいて、前記1つまたは複数の測定値及び前記他の測定値を含む1つまたは複数のデータストアを識別する手順と、
前記識別された1つまたは複数のデータストアから、前記1つまたは複数の測定値及び前記他の測定値を提供する手順と、
を実行させるための、請求項9に記載のプログラム。
Furthermore, the computer system includes:
Receiving a second application programming interface call that retrieves a plurality of measurements of the metric, wherein the second application programming interface call comprises the second application programming interface call including the metadata; The procedure to receive,
Using the included metadata to generate the metrics identifier;
One or more data including the one or more measurements and the other measurements based at least in part on the generated metric identifier and one or more periods specified in the metadata. Steps to identify the store,
Providing the one or more measurements and the other measurements from the identified one or more data stores;
The program of Claim 9 for performing.
さらに、前記コンピュータシステムに、
前記1つまたは複数の測定値をバイナリシリアライゼーションフォーマットに変換する手順であって、前記バイナリシリアライゼーションフォーマットの前記1つまたは複数の測定値は、前記メトリクス識別子及び前記1つまたは複数の測定値を含む、前記バイナリシリアライゼーションフォーマットに変換する手順を実行させるための、請求項9または10に記載のプログラム。
Furthermore, the computer system includes:
Converting the one or more measurements into a binary serialization format, wherein the one or more measurements in the binary serialization format include the metric identifier and the one or more measurements. The program according to claim 9 or 10, for executing a procedure for converting to the binary serialization format.
前記1つまたは複数の測定値を、前記識別されたデータストアに保存することが、
前記データストアから、前記メトリクスのシリアライズされた測定値を検索することであって、前記シリアライズされた測定値は、前記バイナリシリアライゼーションフォーマットの前記他の測定値を含む、前記測定値を検索することと、
前記バイナリシリアライゼーションフォーマットの前記シリアライズされた測定値及び前記1つまたは複数の測定値をデシリアライズすることと、
前記1つまたは複数の測定値を前記他の測定値と集計することと、
前記1つまたは複数の測定値及び前記他の測定値を前記バイナリシリアライゼーションフォーマットに変換することと、
を含む、請求項11に記載のプログラム。
Storing the one or more measurements in the identified data store;
Retrieving a serialized measurement of the metric from the data store, wherein the serialized measurement includes the other measurement in the binary serialization format; ,
Deserializing the serialized measurements and the one or more measurements in the binary serialization format;
Aggregating the one or more measurements with the other measurements;
Converting the one or more measurements and the other measurements into the binary serialization format;
The program according to claim 11, including:
さらに、前記コンピュータシステムに、
ランレングス符号化を用いて、前記バイナリシリアライゼーションフォーマットで同一の値を有する1つまたは複数の連続した測定値に対して前記1つまたは複数の測定値を圧縮する手順を実行させるための、請求項11または12に記載のプログラム。
Furthermore, the computer system includes:
A method for causing the procedure of compressing the one or more measurements to one or more consecutive measurements having the same value in the binary serialization format using run length encoding. The program according to 11 or 12.
さらに、前記コンピュータシステムに、
前記1つまたは複数の測定値の前記メトリクス識別子及びタイムスタンプに少なくとも部分的に基づいて、パーティションを生成する手順と、
前記パーティションの前記1つまたは複数の測定値を、集計サブシステムに割り振るためにキュー内に配置する手順であって、前記集計サブシステムは、前記識別されたデータストアを含む、前記配置する手順と、
前記1つまたは複数の測定値を前記識別されたデータストアに保存するために、前記キューから、前記集計サブシステムに前記1つまたは複数の測定値を送信する手順と、を実行させるための、請求項9〜13のいずれか一項に記載のプログラム。
Furthermore, the computer system includes:
Generating a partition based at least in part on the metric identifier and timestamp of the one or more measurements;
Placing the one or more measurements of the partition in a queue for allocation to an aggregation subsystem, the aggregation subsystem including the identified data store; ,
Sending the one or more measurements from the queue to the aggregation subsystem to store the one or more measurements in the identified data store; The program as described in any one of Claims 9-13.
さらに、前記コンピュータシステムに、
メトリクスマッピングレジストリから、パーティションと集計サブシステムのマッピングを経時的に取得する手順と、
メトリクスデータの前記メトリクス識別子及びタイムスタンプを用いて、前記1つまたは複数の測定値を前記識別されたデータストアに保存するために、前記マッピングから前記集計サブシステムを判定する手順と、を実行させるための、請求項9〜14のいずれか一項に記載のプログラム。
Furthermore, the computer system includes:
Obtaining partition and aggregation subsystem mappings over time from the metrics mapping registry;
Determining the aggregation subsystem from the mapping to store the one or more measurements in the identified data store using the metric identifier and timestamp of metric data. 15. A program according to any one of claims 9 to 14 for use.
JP2017562281A 2015-06-26 2016-06-24 Data store for aggregated metrics measurements Active JP6607963B2 (en)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US14/752,760 2015-06-26
US14/752,754 2015-06-26
US14/752,752 US9880919B2 (en) 2015-06-26 2015-06-26 Aggregation of metrics data with fine granularity
US14/752,756 US9910755B2 (en) 2015-06-26 2015-06-26 Retrieval of authoritative measurement data from in-memory datastores
US14/752,752 2015-06-26
US14/752,760 US9880880B2 (en) 2015-06-26 2015-06-26 Automatic scaling of computing resources using aggregated metrics
US14/752,756 2015-06-26
US14/752,759 2015-06-26
US14/752,759 US9882830B2 (en) 2015-06-26 2015-06-26 Architecture for metrics aggregation without service partitioning
US14/752,754 US9882982B2 (en) 2015-06-26 2015-06-26 Datastore for aggregated measurements for metrics
PCT/US2016/039371 WO2016210332A1 (en) 2015-06-26 2016-06-24 Datastore for aggregated measurements for metrics

Publications (2)

Publication Number Publication Date
JP2018522336A true JP2018522336A (en) 2018-08-09
JP6607963B2 JP6607963B2 (en) 2019-11-20

Family

ID=56360520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017562281A Active JP6607963B2 (en) 2015-06-26 2016-06-24 Data store for aggregated metrics measurements

Country Status (5)

Country Link
EP (1) EP3314865A1 (en)
JP (1) JP6607963B2 (en)
CN (1) CN107924345B (en)
CA (1) CA2988805C (en)
WO (1) WO2016210332A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210110701A (en) * 2019-09-27 2021-09-08 텐센트 아메리카 엘엘씨 Methods and devices for cloud services

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3382946A1 (en) * 2017-03-30 2018-10-03 Thomson Licensing Device and method for performance monitoring
WO2019140157A1 (en) * 2018-01-12 2019-07-18 Visa International Service Association Authentication based on biometric identification parameter of an individual for payment transaction
WO2020078395A1 (en) * 2018-10-16 2020-04-23 杭州海康威视数字技术股份有限公司 Data storage method and apparatus, and storage medium
CN113127205B (en) * 2021-04-30 2022-05-17 东北大学秦皇岛分校 Workflow scheduling method meeting deadline constraint and optimizing cost in cloud

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401253B2 (en) * 2005-05-09 2008-07-15 International Business Machines Corporation Convolution-encoded data storage on a redundant array of independent devices
JP5462418B2 (en) * 2010-09-22 2014-04-02 ザ ニールセン カンパニー (ユー エス) エルエルシー Method and apparatus for identifying impressions using distributed demographic information
US8838624B2 (en) * 2010-09-24 2014-09-16 Hitachi Data Systems Corporation System and method for aggregating query results in a fault-tolerant database management system
US8429187B2 (en) * 2011-03-21 2013-04-23 Amazon Technologies, Inc. Method and system for dynamically tagging metrics data
US8965921B2 (en) * 2012-06-06 2015-02-24 Rackspace Us, Inc. Data management and indexing across a distributed database

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210110701A (en) * 2019-09-27 2021-09-08 텐센트 아메리카 엘엘씨 Methods and devices for cloud services
CN114128236A (en) * 2019-09-27 2022-03-01 腾讯美国有限责任公司 Method and device for providing cloud service
JP2022522839A (en) * 2019-09-27 2022-04-20 テンセント・アメリカ・エルエルシー Methods, equipment, and computer programs for cloud services
CN114128236B (en) * 2019-09-27 2023-05-23 腾讯美国有限责任公司 Cloud service method, device and medium
JP7285945B2 (en) 2019-09-27 2023-06-02 テンセント・アメリカ・エルエルシー Method, apparatus and computer program for cloud services
US11861411B2 (en) 2019-09-27 2024-01-02 Tencent America LLC Variable and event reporting in a cloud service system

Also Published As

Publication number Publication date
WO2016210332A1 (en) 2016-12-29
CA2988805A1 (en) 2016-12-29
CN107924345B (en) 2021-09-21
EP3314865A1 (en) 2018-05-02
CN107924345A (en) 2018-04-17
JP6607963B2 (en) 2019-11-20
CA2988805C (en) 2023-09-05

Similar Documents

Publication Publication Date Title
US9880880B2 (en) Automatic scaling of computing resources using aggregated metrics
US10270854B2 (en) Datastore for aggregated measurements for metrics
US9882830B2 (en) Architecture for metrics aggregation without service partitioning
US10515000B2 (en) Systems and methods for performance testing cloud applications from multiple different geographic locations
US10795905B2 (en) Data stream ingestion and persistence techniques
US10467105B2 (en) Chained replication techniques for large-scale data streams
US10691716B2 (en) Dynamic partitioning techniques for data streams
US9910755B2 (en) Retrieval of authoritative measurement data from in-memory datastores
JP6607963B2 (en) Data store for aggregated metrics measurements
US9471585B1 (en) Decentralized de-duplication techniques for largescale data streams
US11296941B2 (en) Standby instances for auto-scaling groups
US10635644B2 (en) Partition-based data stream processing framework
US9276959B2 (en) Client-configurable security options for data streams
US9811445B2 (en) Methods and systems for the use of synthetic users to performance test cloud applications
WO2020253079A1 (en) Jmeter-based distributed performance test method and apparatus, device, and storage medium
US20150134797A1 (en) Managed service for acquisition, storage and consumption of large-scale data streams
US10599621B1 (en) Distributed processing framework file system fast on-demand storage listing
US9880919B2 (en) Aggregation of metrics data with fine granularity
Holt Scaling CouchDB: replication, clustering, and administration
Narayanan A holistic approach to lowering latency in geo-distributed web applications
Alapati et al. Analyzing Operating System Performance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190322

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190827

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191021

R150 Certificate of patent or registration of utility model

Ref document number: 6607963

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250