問題タブ [opentsdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hadoop - 競合状態の警告 OpenTSDB
openTSDB への複数のインポートを同時に実行しているときに、競合状態の警告が表示されます。以下は、競合状態を示すログ シーケンスの 1 つです。
2013-08-21 14:34:24,745 INFO [main] UniqueId: kind='tagv' name='25447' の ID を作成しています
2013-08-21 14:34:24,747 INFO [main] UniqueId: kind='tagv' name='25447' の ID=307 を取得しました
2013-08-21 14:34:24,752 警告 [メイン] UniqueId: 競合状態: ID 307 を tagv:25447 に割り当てようとしましたが、CAS は PutRequest(table="tsdb-uid", key="25447", family ="id"、qualifiers=["tagv"]、values=["\x00\x013"]、timestamp=9223372036854775807、lockid=-1、durable=true、bufferable=true、attempt=0、region=null)、これは、この UID が別の TSD によって同時に割り当てられたに違いないことを示しています。だからID 307が流出した。
私が持っている次の質問:
- 警告なので、実際にレコードが書き込まれ、スキップされていないということですか?
- 最後に「ID 307 が漏えいしました」とありますが、別の ID がレコードに割り当てられているのでしょうか?
- 上記のレコードが「tsdb-uid」という名前の HBase のテーブルに書き込まれていることを確認するにはどうすればよいですか? (HBase シェル コマンド、いくつか試してみましたが無駄でした)。
c# - JSON オブジェクトを c# オブジェクトに逆シリアル化する - OpenTSDB
初めて JSON を扱い、OpenTSDB からデータを取得しています。JSON を逆シリアル化する ac# クラスを作成しましたが、以下で説明するように、「現在の JSON 配列を逆シリアル化できません」というエラーが表示されます。
JSON を取得するための私の c# コード:
上記のコードから受け取った JSON (つまり、「テキスト」変数):
私のC#クラス
オブジェクトを逆シリアル化するときのエラー:
現在の JSON 配列 ([1,2,3] など) を型 'MyNamespace.OpenTSDBResponse' に逆シリアル化できません。型が正しく逆シリアル化するには JSON オブジェクト ({"name":"value"} など) が必要なためです。このエラーを修正するにはJSON を JSON オブジェクト (例: {"name":"value"}) に変更するか、逆シリアル化された型を配列、または List などのコレクション インターフェイスを実装する型 (例: ICollection、IList) に変更します。 JSON 配列。JsonArrayAttribute を型に追加して、強制的に JSON 配列から逆シリアル化することもできます。パス ''、行 1、位置 1.
追加情報
codeproject deserialize JSON プロジェクトを使用して基本的なクラスを作成しましたが、「1377050434」:1271779.0 ごとに新しい c# プロパティが作成されたため、TimeValue クラスを使用するように更新しました。http://www.codeproject.com/Tips/79435/Deserialize-JSON-with-C
質問:
これを適切なC#クラス構造にするにはどうすればよいですか?
以下のユーザーのコメントに対する追加情報:
bjaminn のコメント: あなたが受け取っている JSON は配列だと思います。例外は、実際に OpenTSDBResponse[] が必要な場合に、オブジェクト [] を OpenTSDBResponse に変換しようとしているということです。これをデバッグするもう 1 つの方法は、変数 variable を見て、デバッガーでその型を確認することです。もちろん、例外をスローする行はコメントアウトする必要があります。
結果:このようにデシリアライズを変更しました
OpenTSDBResponse[] myObject = (OpenTSDBResponse[])Newtonsoft.Json.JsonConvert.DeserializeObject(text, typeof(OpenTSDBResponse[]));
しかし、実行すると次のエラーが発生しました。
型には JSON 配列が必要なため (例: [1,このエラーを修正するには、JSON を JSON 配列 ([1,2,3] など) に変更するか、逆シリアル化された型を通常の .NET 型 (プリミティブではない型) に変更します。配列やリストのようなコレクション型ではなく、整数のような型) は、JSON オブジェクトから逆シリアル化できます。JsonObjectAttribute を型に追加して、強制的に JSON オブジェクトから逆シリアル化することもできます。パス '[0].dps.1377050434'、行 1、位置 121。
JSON のその他の新しい機能に関する追加の注意事項 実際には「unix-time-stamp-data」、「Value」であるため、Dictionary のクラスに別のプロパティを追加しました。これにより、日時/値を使用して c# で作業できます。キャストにはもっと良い方法があるかもしれませんが、これは機能し、私のシナリオでは目立ったパフォーマンスの問題は発生しません。
c# - OpenTSDB - http 経由ですべてのメトリックを取得する
OpenTSDB からデータを取得していますが、http 経由でメトリックのリストを取得する方法がわかりません。
参考までに、databack を取得するために使用している c# コードを次に示します。すべての指標を返す URL はありますか?
デフォルトの OpenTSDB Web サイトは、次のスクリーンショットのようにこの機能を提供します。これを自分の ASP サイトから模倣したいと考えています。
java - tCollector を使用して Java 経由で openTSDB にデータを追加する方法
私の目標は、Java コードを介して直接 TSDB にデータを挿入することです。そのために、データを STDOUT に出力する実行可能 jar を作成しようとしました。次に、この jar を実行して内部に配置するようにコレクターを作成しましたtcollector/collectors/0
。最後に、コレクターをシェルスクリプトで実行する方法と Python で実行する方法の 2 つの方法で実行してみました。
Python コレクター:
上記のコレクタは問題なく動作していましたが、シェル スクリプトから同じ jar を実行しようとしたときに、コレクタがシェル スクリプトを選択していませんでした。
シェル スクリプト コレクター:
このコレクターを登録するには、何かを構成する必要がありますか? Java を介してデータを挿入する必要がある場合、Collector で同じことを行う最良の方法はどれですか?
monitoring - OpenTSDB はどのようにデータをダウンサンプリングしますか
OpenTSDB でのダウンサンプリングに関する 2 つの質問があります。
1つ目は、OpenTSDBがダウンサンプリングを計算するときに最後のエンドポイントを包括的または排他的に取るか、またはエンドデータポイントを2回カウントするかを誰かが知っているかどうか疑問に思っていましたか?
たとえば、時間間隔が午後 12 時 30 分~午後 1 時 30 分で、午後 12 時 29 分 44 秒から 5 分ごとに DP を取得し、ダウンサンプル間隔が 10 分ブロックごとに合計される場合、システムは 12 時 30 分から DP を取得しますか? -12:39 とそれらの合計、12:40-12:49 とそれらの合計など、または 12:30-12:40 の DP、次に 12:40-12:50 の DP などを使用しますか? はい、私はデータが 15 秒ずれていることはわかっていますが、それを制御することはできません。
手で計算しようとしましたが、私が持っているデータは役に立ちません。私が計算している数値は、上記に加算されておらず、グラフが示しているものと一致していません. 数値を OpenTSDB にプッシュするシステムにアクセスできないため、チェックするダミー データをセットアップできません。
2 番目の質問は、ダウンサンプリングが時間範囲とダウンサンプル間隔からグラフにそのポイントをどのようにプロットするかということです。10 分のブロックを合計するようにダウンサンプルを設定しました。範囲を午後 12 時 30 分~午後 1 時 30 分に設定しました。このグラフは、ダウンサンプリングされたグラフの最初のポイントが午後 12 時 35 分に始まることを示しています。それは論理的に理にかなっています。
範囲を 12:24pm から 1:29pm に変更し、最初のポイントが 12:30 に開始されることを期待していましたが、最初に表示されたポイントは 12:25pm です。
うまくいけば、誰かが私のためにこれらの質問に答えることができます. それまでの間、ダウンサンプリングがどのように機能するかを示す/証明するのに役立つデータをシステムで見つけようと試み続けます。
よろしくお願いします。
hadoop - 単一の HBase バックエンドを使用するように複数の OpenTSDB を構成する
データを単一の HBase に入れるには、複数の openTSDB を構成する必要があります。すべての TSD のうち、1 つは Hbase に対してローカルで実行され、その他はリモートで実行されます。--zkquorum=xxx:xxx:xxx:xxx:YY という追加の引数を指定して TSD を実行しようとしましたが、接続はできましたが、内部で例外が発生しました。複数の TSD を実行して単一の Hbase を使用するには、何を設定すればよいか教えてください。
cassandra - kairosdb 列ファミリーを直接クエリする
Cassandra から時系列データを取得しようとしています。データは外部アプリケーションによってそこに置かれ、KairosDB を使用して (OpenTSDB に基づいて) データを書き込みます。開発中のアプリケーションに KairosDB ライブラリを配置するオプションはありませんが、Datastax Cassandra ライブラリは既に利用可能です。
使用可能な方法で Cassandra から直接情報を取得するための基本的なクエリをどのように作成すればよいでしょうか? 行キー インデックスの開始/終了時間と追加のタグを指定できるクエリ。これのいくつかは、私が見逃している基本的な Cassandra の知識かもしれませんが、サンプル時間が row_key_index の絶対タイムスタンプからの相対値として格納されるという事実や、データが複数の row_key_index に分割される可能性があるという事実など、スキーマに固有の問題があります。データの保持期間と要求された期間に応じて列。
列ファミリーから直接データをクエリすると、次のようになります。
row_key_index テーブルに対してクエリを実行すると、データはすべて BLOB として保存されます。blob->ascii 変換を行うと、次のようになります。
column1 で同じ変換を行うと、次のようになります。
およびデータポイント:
時代が見えません。row_key_index の絶対時間と data_points の相対オフセットを期待しています。価値観が見えない時があります。その情報はrow_key_index.column1のタグに埋め込まれているようで、cqlのLIKEまたは範囲スライスに相当するものを認識していないため、特定のマシンの統計を照会する方法がわかりません。
ubuntu - HBaseClient: -ROOT- リージョンの znode が存在しません
OpenTSDB をセットアップするための指示に従いました: http://opentsdb.net/getting-started.htmlおよびhttp://opentsdb.net/setup-hbase.html。コマンドを使用してopentsdbを起動した後:
次のエラーが発生しました:
2013-10-04 22:59:40,577 ERROR [main-EventThread] HBaseClient: The znode for the -ROOT- region doesn't exist!
hbase のログ ファイルは次のとおりです。
opentsdb - タグを持たないメトリクスの openTSDB クエリ
タグを持たないメトリック値を照会する方法はありますか?たとえば、metric1 は tag1、tag2、または tag1 のみでログに記録されます。
java - OPENTSDB fsck -- 重複したポイントを修正しない問題を修正
私はOPENTSDBを使用していますが、クエリ中にこれを取得しています:
fsck --fix を使用してみましたが、エラーは見つかりませんでした。次の方法はありますか?
ありがとう