/// <summary>Snippet for CreateSpanAsync</summary> public async Task CreateSpanRequestObjectAsync() { // Snippet: CreateSpanAsync(Span, CallSettings) // Additional: CreateSpanAsync(Span, CancellationToken) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) Span request = new Span { SpanName = SpanName.FromProjectTraceSpan("[PROJECT]", "[TRACE]", "[SPAN]"), SpanId = "", ParentSpanId = "", DisplayName = new TruncatableString(), StartTime = new Timestamp(), EndTime = new Timestamp(), Attributes = new Span.Types.Attributes(), StackTrace = new StackTrace(), TimeEvents = new Span.Types.TimeEvents(), Links = new Span.Types.Links(), Status = new Status(), SameProcessAsParentSpan = false, ChildSpanCount = 0, }; // Make the request Span response = await traceServiceClient.CreateSpanAsync(request); // End snippet }
/// <summary> /// Creates a <see cref="SimpleManagedTracer"/> with a <see cref="GrpcTraceConsumer"/>. /// </summary> private SimpleManagedTracer CreateTracer() { string traceId = _traceIdFactory.NextId(); var traceProto = new TraceProto { ProjectId = _projectId, TraceId = traceId }; var consumer = new GrpcTraceConsumer(TraceServiceClient.CreateAsync()); return(SimpleManagedTracer.Create(consumer, traceProto, null)); }
/// <summary>Snippet for ListTracesAsync</summary> public async Task ListTracesRequestObjectAsync() { // Snippet: ListTracesAsync(ListTracesRequest, CallSettings) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) ListTracesRequest request = new ListTracesRequest { ProjectId = "", View = ListTracesRequest.Types.ViewType.Unspecified, StartTime = new Timestamp(), EndTime = new Timestamp(), Filter = "", OrderBy = "", }; // Make the request PagedAsyncEnumerable <ListTracesResponse, Trace> response = traceServiceClient.ListTracesAsync(request); // Iterate over all response items, lazily performing RPCs as required await response.ForEachAsync((Trace item) => { // Do something with each item Console.WriteLine(item); }); // Or iterate over pages (of server-defined size), performing one RPC per page await response.AsRawResponses().ForEachAsync((ListTracesResponse page) => { // Do something with each page of items Console.WriteLine("A page of results:"); foreach (Trace item in page) { // Do something with each item Console.WriteLine(item); } }); // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required int pageSize = 10; Page <Trace> singlePage = await response.ReadPageAsync(pageSize); // Do something with the page of items Console.WriteLine($"A page of {pageSize} results (unless it's the final page):"); foreach (Trace item in singlePage) { // Do something with each item Console.WriteLine(item); } // Store the pageToken, for when the next page is required. string nextPageToken = singlePage.NextPageToken; // End snippet }
private CloudTrace(string projectId, TraceConfiguration config = null, Task <TraceServiceClient> client = null) { _projectId = GaxPreconditions.CheckNotNull(projectId, nameof(projectId)); // Create the default values if not set. client = client ?? TraceServiceClient.CreateAsync(); config = config ?? TraceConfiguration.Create(); _traceIdfactory = TraceIdFactory.Create(); _bufferingConsumer = BufferingTraceConsumer.Create(new GrpcTraceConsumer(client)); _rateFactory = RateLimitingTraceOptionsFactory.Create(config); _headerFactory = TraceHeaderTraceOptionsFactory.Create(); }
private CloudTrace(string projectId, TraceConfiguration config = null, Task <TraceServiceClient> client = null) { GaxPreconditions.CheckNotNull(projectId, nameof(projectId)); // Create the default values if not set. client = client ?? TraceServiceClient.CreateAsync(); config = config ?? TraceConfiguration.Create(); var consumer = ConsumerFactory <TraceProto> .GetConsumer( new GrpcTraceConsumer(client), MessageSizer <TraceProto> .GetSize, config.BufferOptions); _tracerFactory = new ManagedTracerFactory(projectId, consumer, RateLimitingTraceOptionsFactory.Create(config), TraceIdFactory.Create()); }
/// <summary>Snippet for PatchTracesAsync</summary> public async Task PatchTracesAsync() { // Snippet: PatchTracesAsync(string, Traces, CallSettings) // Additional: PatchTracesAsync(string, Traces, CancellationToken) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) string projectId = ""; Traces traces = new Traces(); // Make the request await traceServiceClient.PatchTracesAsync(projectId, traces); // End snippet }
/// <summary>Snippet for GetTraceAsync</summary> public async Task GetTraceAsync() { // Snippet: GetTraceAsync(string, string, CallSettings) // Additional: GetTraceAsync(string, string, CancellationToken) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) string projectId = ""; string traceId = ""; // Make the request Trace response = await traceServiceClient.GetTraceAsync(projectId, traceId); // End snippet }
/// <summary>Snippet for BatchWriteSpansAsync</summary> public async Task BatchWriteSpansAsync() { // Snippet: BatchWriteSpansAsync(string, IEnumerable<Span>, CallSettings) // Additional: BatchWriteSpansAsync(string, IEnumerable<Span>, CancellationToken) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) string name = "projects/[PROJECT]"; IEnumerable <Span> spans = new Span[] { new Span(), }; // Make the request await traceServiceClient.BatchWriteSpansAsync(name, spans); // End snippet }
/// <summary>Snippet for BatchWriteSpansAsync</summary> public async Task BatchWriteSpansResourceNamesAsync() { // Snippet: BatchWriteSpansAsync(ProjectName, IEnumerable<Span>, CallSettings) // Additional: BatchWriteSpansAsync(ProjectName, IEnumerable<Span>, CancellationToken) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) ProjectName name = ProjectName.FromProject("[PROJECT]"); IEnumerable <Span> spans = new Span[] { new Span(), }; // Make the request await traceServiceClient.BatchWriteSpansAsync(name, spans); // End snippet }
/// <summary>Snippet for BatchWriteSpansAsync</summary> public async Task BatchWriteSpansAsync() { // Snippet: BatchWriteSpansAsync(ProjectName,IEnumerable<apis::Span>,CallSettings) // Additional: BatchWriteSpansAsync(ProjectName,IEnumerable<apis::Span>,CancellationToken) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) ProjectName name = new ProjectName("[PROJECT]"); IEnumerable <apis::Span> spans = new List <apis::Span>(); // Make the request await traceServiceClient.BatchWriteSpansAsync(name, spans); // End snippet }
public async Task PatchTracesAsync_RequestObject() { // Snippet: PatchTracesAsync(PatchTracesRequest,CallSettings) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) PatchTracesRequest request = new PatchTracesRequest { ProjectId = "", Traces = new Traces(), }; // Make the request await traceServiceClient.PatchTracesAsync(request); // End snippet }
public async Task GetTraceAsync_RequestObject() { // Snippet: GetTraceAsync(GetTraceRequest,CallSettings) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) GetTraceRequest request = new GetTraceRequest { ProjectId = "", TraceId = "", }; // Make the request Trace response = await traceServiceClient.GetTraceAsync(request); // End snippet }
/// <summary>Snippet for BatchWriteSpansAsync</summary> public async Task BatchWriteSpansAsync_RequestObject() { // Snippet: BatchWriteSpansAsync(BatchWriteSpansRequest,CallSettings) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) BatchWriteSpansRequest request = new BatchWriteSpansRequest { ProjectName = new ProjectName("[PROJECT]"), Spans = { }, }; // Make the request await traceServiceClient.BatchWriteSpansAsync(request); // End snippet }
/// <summary>Snippet for BatchWriteSpansAsync</summary> public async Task BatchWriteSpansRequestObjectAsync() { // Snippet: BatchWriteSpansAsync(BatchWriteSpansRequest, CallSettings) // Additional: BatchWriteSpansAsync(BatchWriteSpansRequest, CancellationToken) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) BatchWriteSpansRequest request = new BatchWriteSpansRequest { ProjectName = ProjectName.FromProject("[PROJECT]"), Spans = { new Span(), }, }; // Make the request await traceServiceClient.BatchWriteSpansAsync(request); // End snippet }
/// <summary>Snippet for CreateSpanAsync</summary> public async Task CreateSpanAsync_RequestObject() { // Snippet: CreateSpanAsync(Span,CallSettings) // Create client TraceServiceClient traceServiceClient = await TraceServiceClient.CreateAsync(); // Initialize request argument(s) Span request = new Span { SpanName = new SpanName("[PROJECT]", "[TRACE]", "[SPAN]"), SpanId = "", DisplayName = new TruncatableString(), StartTime = new Timestamp(), EndTime = new Timestamp(), }; // Make the request Span response = await traceServiceClient.CreateSpanAsync(request); // End snippet }
/// <summary> /// Adds the needed services for Google Cloud Tracing. Used with <see cref="UseGoogleTrace"/>. /// </summary> /// <param name="services">The service collection. Cannot be null.</param> /// <param name="projectId">The Google Cloud Platform project ID. Cannot be null.</param> /// <param name="config">Optional trace configuration, if unset the default will be used.</param> /// <param name="clientTask">Optional task which produces the Trace client, if /// unset the default will be used.</param> public static void AddGoogleTrace( this IServiceCollection services, string projectId, TraceConfiguration config = null, Task <TraceServiceClient> clientTask = null) { GaxPreconditions.CheckNotNull(services, nameof(services)); GaxPreconditions.CheckNotNull(projectId, nameof(projectId)); clientTask = clientTask ?? TraceServiceClient.CreateAsync(); config = config ?? TraceConfiguration.Create(); IConsumer <TraceProto> consumer = ConsumerFactory <TraceProto> .GetConsumer( new GrpcTraceConsumer(clientTask), MessageSizer <TraceProto> .GetSize, config.BufferOptions); var tracerFactory = new ManagedTracerFactory(projectId, consumer, RateLimitingTraceOptionsFactory.Create(config), TraceIdFactory.Create()); services.AddSingleton <IManagedTracerFactory>(tracerFactory); services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddScoped(CreateTraceHeaderContext); services.AddScoped(CreateManagedTracer); }