1

Python アプリを含む GKE にコンテナをデプロイしていますが、OpenCensus を使用してトレース メッセージを送信しようとするとエラーが発生します。

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/opencensus/metrics/transport.py", line 59, in func
    return self.func(*aa, **kw)
  File "/usr/local/lib/python3.7/site-packages/opencensus/metrics/transport.py", line 113, in export_all
    export(itertools.chain(*all_gets))
  File "/usr/local/lib/python3.7/site-packages/opencensus/ext/stackdriver/stats_exporter/__init__.py", line 162, in export_metrics
    self.client.project_path(self.options.project_id), ts_batch)
  File "/usr/local/lib/python3.7/site-packages/google/cloud/monitoring_v3/gapic/metric_service_client.py", line 1024, in create_time_series
    request, retry=retry, timeout=timeout, metadata=metadata
  File "/usr/local/lib/python3.7/site-packages/google/api_core/gapic_v1/method.py", line 143, in __call__
    return wrapped_func(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/google/api_core/retry.py", line 273, in retry_wrapped_func
    on_error=on_error,
  File "/usr/local/lib/python3.7/site-packages/google/api_core/retry.py", line 182, in retry_target
    return target()
  File "/usr/local/lib/python3.7/site-packages/google/api_core/timeout.py", line 214, in func_with_timeout
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/google/api_core/grpc_helpers.py", line 59, in error_remapped_callable
    six.raise_from(exceptions.from_grpc_error(exc), exc)
  File "<string>", line 3, in raise_from
google.api_core.exceptions.InvalidArgument: 400 One or more TimeSeries could not be written: The set of resource labels is incomplete. Missing labels: (container_name namespace_name).: timeSeries[0-199]

興味深い部分は、次の文のようです: Missing labels: (container_name namespace_name).

まったく同じコードをローカルで実行すると、エラーは発生せず、Stackdriver Metrics Explorer にトレースが表示されるので、問題は特に GKE のコンテナ内での実行に関連しているようです。

OpenCensus を GKE コンテナで動作させるために必要なものはありますか?

4

1 に答える 1

1

CONTAINER_NAME答えは、コンテナにとの 2 つの環境変数を手動で設定する必要があるということですNAMESPACE。GKE はこれらを設定する必要があると思いますが、設定していないため、OpenCensus は期待値を見つけることができません。サンプル修正には、これら 2 つの変数を podspec に含めることが含まれます。

        spec:
          containers:
            env:
            - name: NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: CONTAINER_NAME
              value: {{ APP }}-collectors-{{ NAME }}

詳細: https://github.com/census-instrumentation/opencensus-python/issues/796#issuecomment-539109321

于 2019-10-11T17:56:29.197 に答える