Those packages are generally preferred over using the Error
Reporting API directly.
Installation
Install theGoogle.Cloud.ErrorReporting.V1Beta1package from NuGet. Add it to
your project in the normal way (for example by right-clicking on the
project in Visual Studio and choosing "Manage NuGet Packages...").
Please ensure you enable pre-release packages (for example, in the
Visual Studio NuGet user interface, check the "Include prerelease"
box). Some of the following samples might only work with the latest
pre-release version (3.0.0-beta05) ofGoogle.Cloud.ErrorReporting.V1Beta1.
Authentication
When running on Google Cloud, no action needs to be taken to authenticate.
Otherwise, the simplest way of authenticating your API calls is to
set up Application Default Credentials.
The credentials will automatically be used to authenticate. SeeSet up Application Default Credentialsfor more details.
Getting started
All operations are performed through the following client classes:
Create a client instance by calling the staticCreateorCreateAsyncmethods. Alternatively,
use the builder class associated with each client class (e.g. ErrorGroupServiceClientBuilder for ErrorGroupServiceClient)
as an easy way of specifying custom credentials, settings, or a custom endpoint. Clients are thread-safe,
and we recommend using a single instance across your entire application unless you have a particular need
to configure multiple client objects separately.
Using the REST (HTTP/1.1) transport
This library defaults to performing RPCs usinggRPCusing the binaryProtocol Bufferwire format.
However, it also supports HTTP/1.1 and JSON, for situations where gRPC doesn't work as desired. (This is typically due to an incompatible proxy
or other network issue.) To create a client using HTTP/1.1, specify aRestGrpcAdapterreference for theGrpcAdapterproperty in the client builder.
Sample code:
var client = new ErrorGroupServiceClientBuilder
{
GrpcAdapter = RestGrpcAdapter.Default
}.Build();
Sample code using the Error Reporting API directly
Report an error
ReportErrorsServiceClient client = ReportErrorsServiceClient.Create();
ProjectName projectName = new ProjectName(projectId);
ReportedErrorEvent error = new ReportedErrorEvent
{
Context = new ErrorContext
{
ReportLocation = new SourceLocation
{
FilePath = "SampleApp.BusinessLogic/ComplexLogic.cs",
FunctionName = "ComputeTrickyAnswer",
LineNumber = 100
},
User = "userid"
},
// If this is a stack trace, the service will parse it.
Message = "Computation failed",
EventTime = Timestamp.FromDateTime(DateTime.UtcNow),
ServiceContext = new ServiceContext
{
Service = "SampleApp",
Version = "1.0.0"
}
};
client.ReportErrorEvent(projectName, error);
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003e\u003ccode\u003eGoogle.Cloud.ErrorReporting.V1Beta1\u003c/code\u003e is a .NET client library for the Google Cloud Error Reporting API, designed for managing and reporting errors in cloud applications.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of the library is \u003ccode\u003e3.0.0-beta05\u003c/code\u003e, and the documentation provided is specifically for this version.\u003c/p\u003e\n"],["\u003cp\u003eFor automatic error reporting, using the \u003ccode\u003eGoogle.Cloud.Diagnostics.AspNetCore\u003c/code\u003e and \u003ccode\u003eGoogle.Cloud.Diagnostics.AspNetCore3\u003c/code\u003e NuGet packages is generally preferred over direct API use.\u003c/p\u003e\n"],["\u003cp\u003eThe library supports multiple authentication methods, including automatic authentication when running on Google Cloud and Application Default Credentials otherwise.\u003c/p\u003e\n"],["\u003cp\u003eThe library provides three client classes for different operations, \u003ccode\u003eErrorGroupServiceClient\u003c/code\u003e, \u003ccode\u003eErrorStatsServiceClient\u003c/code\u003e, and \u003ccode\u003eReportErrorsServiceClient\u003c/code\u003e, which can be created using the \u003ccode\u003eCreate\u003c/code\u003e or \u003ccode\u003eCreateAsync\u003c/code\u003e methods or by using their respective builder classes.\u003c/p\u003e\n"]]],[],null,["Version latestkeyboard_arrow_down\n\n- [3.0.0-beta05 (latest)](/dotnet/docs/reference/Google.Cloud.ErrorReporting.V1Beta1/latest)\n- [3.0.0-beta04](/dotnet/docs/reference/Google.Cloud.ErrorReporting.V1Beta1/3.0.0-beta04)\n- [2.0.0-beta05](/dotnet/docs/reference/Google.Cloud.ErrorReporting.V1Beta1/2.0.0-beta05) \n\nGoogle.Cloud.ErrorReporting.V1Beta1\n===================================\n\n`Google.Cloud.ErrorReporting.V1Beta1` is a.NET client library for the [Google Cloud Error Reporting API](https://cloud.google.com/error-reporting/).\n\nNote:\nThis documentation is for version `3.0.0-beta05` of the library.\nSome samples may not work with other versions.\n\nSupport for automatic error reporting can be found in the\n[`Google.Cloud.Diagnostics.AspNetCore`](../../Google.Cloud.Diagnostics.AspNetCore/latest)\nand\n[`Google.Cloud.Diagnostics.AspNetCore3`](../../Google.Cloud.Diagnostics.AspNetCore3/latest)\nNuGet packages.\n\nThose packages are generally preferred over using the Error\nReporting API directly.\n\nInstallation\n------------\n\nInstall the `Google.Cloud.ErrorReporting.V1Beta1` package from NuGet. Add it to\nyour project in the normal way (for example by right-clicking on the\nproject in Visual Studio and choosing \"Manage NuGet Packages...\").\nPlease ensure you enable pre-release packages (for example, in the\nVisual Studio NuGet user interface, check the \"Include prerelease\"\nbox). Some of the following samples might only work with the latest\npre-release version (`3.0.0-beta05`) of `Google.Cloud.ErrorReporting.V1Beta1`.\n\nAuthentication\n--------------\n\nWhen running on Google Cloud, no action needs to be taken to authenticate.\n\nOtherwise, the simplest way of authenticating your API calls is to\nset up Application Default Credentials.\nThe credentials will automatically be used to authenticate. See\n[Set up Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc) for more details.\n\nGetting started\n---------------\n\nAll operations are performed through the following client classes:\n\n- [ErrorGroupServiceClient](/dotnet/docs/reference/Google.Cloud.ErrorReporting.V1Beta1/latest/Google.Cloud.ErrorReporting.V1Beta1.ErrorGroupServiceClient)\n- [ErrorStatsServiceClient](/dotnet/docs/reference/Google.Cloud.ErrorReporting.V1Beta1/latest/Google.Cloud.ErrorReporting.V1Beta1.ErrorStatsServiceClient)\n- [ReportErrorsServiceClient](/dotnet/docs/reference/Google.Cloud.ErrorReporting.V1Beta1/latest/Google.Cloud.ErrorReporting.V1Beta1.ReportErrorsServiceClient)\n\nCreate a client instance by calling the static `Create` or `CreateAsync` methods. Alternatively,\nuse the builder class associated with each client class (e.g. ErrorGroupServiceClientBuilder for ErrorGroupServiceClient)\nas an easy way of specifying custom credentials, settings, or a custom endpoint. Clients are thread-safe,\nand we recommend using a single instance across your entire application unless you have a particular need\nto configure multiple client objects separately.\n\n### Using the REST (HTTP/1.1) transport\n\nThis library defaults to performing RPCs using [gRPC](https://grpc.io/) using the binary [Protocol Buffer](https://protobuf.dev) wire format.\nHowever, it also supports HTTP/1.1 and JSON, for situations where gRPC doesn't work as desired. (This is typically due to an incompatible proxy\nor other network issue.) To create a client using HTTP/1.1, specify a `RestGrpcAdapter` reference for the `GrpcAdapter` property in the client builder.\nSample code: \n\n var client = new ErrorGroupServiceClientBuilder\n {\n GrpcAdapter = RestGrpcAdapter.Default\n }.Build();\n\nFor more details, see the [transport selection](https://cloud.google.com/dotnet/docs/reference/help/transports) page.\n\nSample code using the Error Reporting API directly\n--------------------------------------------------\n\nReport an error\n---------------\n\n ReportErrorsServiceClient client = ReportErrorsServiceClient.Create();\n ProjectName projectName = new ProjectName(projectId);\n ReportedErrorEvent error = new ReportedErrorEvent\n {\n Context = new ErrorContext\n {\n ReportLocation = new SourceLocation\n {\n FilePath = \"SampleApp.BusinessLogic/ComplexLogic.cs\",\n FunctionName = \"ComputeTrickyAnswer\",\n LineNumber = 100\n },\n User = \"userid\"\n },\n\n // If this is a stack trace, the service will parse it.\n Message = \"Computation failed\",\n\n EventTime = Timestamp.FromDateTime(DateTime.UtcNow),\n ServiceContext = new ServiceContext\n {\n Service = \"SampleApp\",\n Version = \"1.0.0\"\n }\n };\n client.ReportErrorEvent(projectName, error);\n\nList error groups with statistics\n---------------------------------\n\n ErrorStatsServiceClient client = ErrorStatsServiceClient.Create();\n ProjectName projectName = new ProjectName(projectId);\n PagedEnumerable\u003cListGroupStatsResponse, ErrorGroupStats\u003e groupStats = client.ListGroupStats(\n projectName,\n new QueryTimeRange { Period = Period._30Days });\n foreach (ErrorGroupStats item in groupStats)\n {\n // Sample output: Group: 8002882452986879952; Count: 6; Services: SampleApp/1.0.0\n IEnumerable\u003cstring\u003e services = item.AffectedServices.Select(s =\u003e $\"{s.Service}/{s.Version}\");\n Console.WriteLine($\"Group: {item.Group.GroupId}; Count: {item.Count}; Services: {string.Join(\", \", services)}\");\n }"]]