Skip to content

Latest commit

 

History

History
151 lines (124 loc) · 9.93 KB

faq-ja.md

File metadata and controls

151 lines (124 loc) · 9.93 KB

良くある質問(FAQ)

デモでは、入力した利用量と単価データからどのようにレポートを生成しているのでしょうか?

リソースプロバイダはどのように利用量を集め、積算し、集計し、課金額を計算し、サマリーを作成し、請求するかをJavaScript関数(meter, accumulate, aggregate, rate, summarize, charge)で制御します。これらは、リソース設定のJSONドキュメントに記載されています。

下記のシーケンスのとおり、これらの関数はAbacusのmeter、accumulator、aggregatorそしてレポートサービスを通して登録された利用量を処理するために呼ばれます。

  • リソースプロバイダは計測した値(例えばAPIのコール数、ストレージやメモリのバイト数など)が含まれている利用量ドキュメントを登録します。
  • 利用量が与えられて、リソースプロバイダの定義したmeter()関数が呼び出さます。 そして、リソースの種類に関連したメトリクス(例えばAPIのコール数、ストレージやメモリのバイト数を千単位に変換するなど)が返却されます。
  • プロバイダのaccumulate()関数が呼び出され、単位時間毎(秒毎、分毎、時間毎、日毎、月毎など)に積算(通常であれば単純な足し算)された値が返却されます。
  • 次に、プロバイダのaggregate()関数が呼び出され、組織内の異なるレベルのメトリクスが集計(通常は足し算)されて返却されます。
  • 次に、プロバイダのrate()関数が呼び出され、利用量とメトリクスに応じた単価から課金額が算出されて返却されます。
  • 最後にsummarize()とcharge()関数が呼び出され、利用量サマリサポートを作成するために最終的な利用量サマリと、それに関連する課金額が計算されます。

備考として、利用量の計測とメトリクスは単純な数値(例えばAPIコール数に応じたdecimal)か、あるいはデータ構造を組み合わせたより高度な計測方法 (例えば「すでに153GBのメモリが利用され、本日9:32AMから3GBが利用」)で表現することが可能です。 プロバイダのmeter、accumulate、aggregateなどの関数は、メトリクスに代表されるデータ構造を自由に扱うことができます。

CFからどのようにして利用データを取得すれば良いですか?

現在、CFアプリの利用量をAbacusにレポートするためのプロトタイプを構築中です。sourceでブリッジしているソースを確認することができます。

現時点で行っていることは次のとおりです:

  1. oauthトークンの取得
  2. アプリ利用量イベントのリストアップ
  3. linux-containerのメトリクスレポート

今は基本的にメモリ利用量を集計しています。

同様のアプローチをサービス利用イベントに適用することが可能です。しかしながら、私はサービス利用イベント内で、(インスタンス数を除いて)何が便利なメトリクスなのか十分には分かっていません これはCFから見て、アプリケーションが何をしているのか分からない(分かるべきではない)ということに起因しています。 その代わりに、サービスプロバイダの要求に応じてメトリクスが集計されるようにAbacusを変更することができます。 これにより、サービスブローカー(サービス仲介者)や専用ブリッジが必要な場合、ブローカーからメトリクスを取り出してAbacusに利用レポートとして取り込むことも可能です。

エントリーをキャンセルもしくは訂正するためのAPIはありますか?

現在の設計では、サービスまたはランタイムのプロバイダが相殺する利用ログ(例えば、サービスプロバイダが余分なGB時間を登録してしまった場合、その分をマイナスしたログ)を登録しなければなりません。 誤った処理によって相殺するデータを登録した場合、証跡や将来的な法的根拠を含むさまざまな理由により、我々は履歴を書き換えることは行いません。

その他に考えなければいけないこととして、もし履歴を書き換える方法が存在したとしても、(通常、顧客はリアルタイムに近い状態で顧客自身の利用量を確認することができるため)顧客がすでに間違った利用量を見ていた場合は対応することはできません。 また、さらに困難なケースとして、(8/31 23:30にミスが発生し、9/1より後に請求書が送られた後にそのミスが発覚した場合など)顧客がすでに利用料金を支払った場合も考えられます。

トライアル期限をCF-Abacusで設定できますか?

Abacusでは、利用量や費用をどのように積算していくかは完全に利用側で制御することができます。 また、組織内のさまざまなレベルに対して、利用者自身がリソースに応じて任意に定義(すなわち、ロジックを実装することが可能)できるJavaScript関数を用いて集計処理を行うことも可能です。

実際、上述の制御を簡単に行うため、利用量を積算する際の時間窓(秒、分、時間、日、月、年)を実装しているところです。

他に考えるべきこととして、Abacusは課金処理や請求処理は行わないということがあります。 Abacusは利用量の計測、集計、評価を行い、課金システムと連携するための利用量と課金額のサマリーレポートを提供します。 あなたの特定の課金システムは、最終的にディスカウントや「この顧客には無料で提供する」などを決定します。

顧客毎に異なる単価を設定できますか?

現在、単価の設定は単純なJSONフォーマットの設定ファイルで行いますが、特定のリソース、計画、組織、時間、国、通貨など応じて単価が制御できるように Abacusのインテグレーターが実装できるように変換することを目標としています。

サービスはAbacusが利用量に対する炭化を取得できるようREST APIを実装することが求められます。 そのため、顧客毎(もしくは組織毎)に応じて異なる単価を返すことができます。