I'd like to use the Google Error Reporting Client library (from google.cloud import error_reporting).
Basically, you instantiate a client:
client = error_reporting.Client(service="my_script", version="my_version")
and then you can raise error using:

client.report("my message") or
client.report_exception() when an exception is caught

I have 3 environments (prod, staging and dev). They are each setup on their own Kubernetes cluster (with their own namespace). When I look at Google Cloud Error Reporting dashboard, I would to quickly locate on which environment and which class/script the error was raised.
Using service is a natural choice to describe the class/script but what about the environment?
What is the best practice? Should I use the version to store that, e.g. version="staging_0.0.2"?
Many thanks in advance
Cheers,
Lamp'
I think the Error Reporting service is deficient (see comment above).
Since you're using Kubernetes, how about naming your Error Reporting services to reflect Kubernetes Service names: ${service}.${namespace}.svc.cluster.local?
You could|should replace the internal cluster.local domain part with some unique external specifier (FQDN) to your cluster: $[service}.${namespace}.${cluster}

NOTE These needn't be actual Kubernetes Services but some way for you to uniquely identify the thing within a Kubernetes cluster my_script.errorreporting.${namespace}.${cluster}
Google Cloud - Error Reporting Client Libraries