census-ecosystem / opencensus-go-exporter-stackdriver

OpenCensus Go exporter for Stackdriver Monitoring and Trace
Apache License 2.0
67 stars 79 forks source link

code = AlreadyExists desc = Errors during metric descriptor creation: {(metric:.., error: The metric already exists.)} #239

Closed ukai closed 4 years ago

ukai commented 4 years ago

Please answer these questions before submitting a bug report.

What version of the Exporter are you using?

v0.12.8

What version of OpenCensus are you using?

v0.22.2

What version of Go are you using?

1.13.4

What did you do?

If possible, provide a recipe for reproducing the error.

    pubsubErrors = stats.Int64(
            "go.chromium.org/goma/command/configmap.pubsub-error",
            "configmap pubsub error",
            stats.UnitDimensionless)

    // DefaultViews are the default views provided by this package.
    // You need to register the view for data to actually be collected.
    DefaultViews = []*view.View{
            {
                    Description: "configmap pubsub error",
                    Measure:     pubsubErrors,
                    Aggregation: view.LastValue(),
            },
    }

What did you expect to see?

no such error.

What did you see instead?

lots of error reported: Failed to export to Stackdriver: rpc error: code = AlreadyExists desc = Errors during metric descriptor creation: {(metric: custom.googleapis.com/opencensus/go.chromium.org/goma/command/configmap.pubsub-error, error: The metric already exists.)}.

Additional context

Add any other context about the problem here.

we register other metrics, but only this metrics reported AlreadyExists error. how can we fix this? safe to ignore?

rghetia commented 4 years ago

@ukaim are you creating different type of metric with the same name. You could query current metric descriptor here or using curl.

curl -X GET -H 'Authorization: Bearer <REPLACE_WITH_YOUR_TOKEN>' 'https://monitoring.googleapis.com/v3/projects/opencensus-microservices-demo/metricDescriptors/custom.googleapis.com/opencensus/go.chromium.org/goma/command/configmap.pubsub-error'

use gcloud auth print-access-token to get the token.

ukai commented 4 years ago

s/opencensus-microservices-demo/$PROJECT_ID/ ?

{ "name": "projects/$PROJECT_ID/metricDescriptors/custom.googleapis.com/opencensus/go.chromium.org/goma/command/configmap.pubsub-error", "labels": [ { "key": "opencensus_task", "description": "Opencensus task identifier" } ], "metricKind": "CUMULATIVE", "valueType": "INT64", "unit": "1", "description": "configmap pubsub error", "displayName": "OpenCensus/go.chromium.org/goma/command/configmap.pubsub-error", "type": "custom.googleapis.com/opencensus/go.chromium.org/goma/command/configmap.pubsub-error", "monitoredResourceTypes": [ "aws_ec2_instance", "cloud_composer_environment", "cloud_composer_workflow", "dataflow_job", "gce_instance", "generic_node", "generic_task", "gke_container", "global", "k8s_cluster", "k8s_container", "k8s_node", "k8s_pod", "knative_broker", "knative_revision", "knative_trigger" ] }

hmm, changing Aggregation from view.Count to view.LastValue was bad? use different name? or is it ok to delete old one and recreate new one?

rghetia commented 4 years ago

usually renaming is better. If you don't care about the old one then delete is fine as well.