private async Task <IGetReplicaResult> GetReplica(string id, short index, IRequestSpan span, CancellationToken cancellationToken, ITranscoderOverrideOptions options) { using var childSpan = _tracer.RequestSpan(OuterRequestSpans.ServiceSpan.Kv.ReplicaRead, span); using var getOp = new ReplicaRead <object>(id, index) { Key = id, Cid = Cid, CName = Name, SName = ScopeName, Span = childSpan }; _operationConfigurator.Configure(getOp, options); using var cts = CreateRetryTimeoutCancellationTokenSource((ITimeoutOptions)options, getOp, out var tokenPair); await _bucket.RetryAsync(getOp, tokenPair).ConfigureAwait(false); return(new GetReplicaResult(getOp.ExtractBody(), getOp.Transcoder, _getLogger) { Id = getOp.Key, Cas = getOp.Cas, OpCode = getOp.OpCode, Flags = getOp.Flags, Header = getOp.Header, IsActive = false }); }
public void AddTags(IRequestSpan span) { span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.LocalHostname, ((IPEndPoint)LocalEndPoint).Address.ToString()); span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.LocalPort, ((IPEndPoint)LocalEndPoint).Port.ToString()); span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.RemoteHostname, ((IPEndPoint)EndPoint).Address.ToString()); span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.RemotePort, ((IPEndPoint)EndPoint).Port.ToString()); span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.LocalId, ConnectionId.ToString()); }
public static void AddTags(this IConnection connection, IRequestSpan span) { span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.LocalHostname, connection.LocalEndPoint.ToString()); span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.LocalPort, ((IPEndPoint)connection.LocalEndPoint).Port.ToString()); span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.RemoteHostname, connection.EndPoint.ToString()); span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.RemotePort, ((IPEndPoint)connection.EndPoint).Port.ToString()); span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.LocalId, connection.ConnectionId.ToString()); }
public IInternalSpan InternalSpan(string operationName, IRequestSpan parent) { var parentInternalSpan = parent as OpenTelemetryInternalSpan; var span = parentInternalSpan == null ? _tracer.StartRootSpan(operationName, SpanKind.Client) : _tracer.StartSpan(operationName, parentInternalSpan.Span, SpanKind.Client); return(new OpenTelemetryInternalSpan(_tracer, span)); }
internal static IRequestSpan WithOperationId(this IRequestSpan span, AnalyticsOptions request) { if (span.CanWrite) { span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.OperationId, request.ClientContextIdValue ?? Guid.NewGuid().ToString()); } return(span); }
internal static IRequestSpan WithStatement(this IRequestSpan span, string statement) { if (span.CanWrite) { span.SetAttribute(OuterRequestSpans.Attributes.Statement, statement); } return(span); }
internal static IRequestSpan WithLocalAddress(this IRequestSpan span) { if (span.CanWrite) { span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.LocalHostname, _dnsHostName ??= Dns.GetHostName()); } return(span); }
internal static IRequestSpan WithOperation(this IRequestSpan span, string operation) { if (span.CanWrite) { span.SetAttribute(OuterRequestSpans.Attributes.Operation, operation); } return(span); }
internal static IRequestSpan WithOperationId(this IRequestSpan span, IOperation operation) { if (span.CanWrite) { span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.OperationId, operation.Opaque); } return(span); }
internal static IRequestSpan WithOperationId(this IRequestSpan span, QueryOptions options) { if (span.CanWrite) { span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.OperationId, options.CurrentContextId ?? Guid.NewGuid().ToString()); } return(span); }
internal static IRequestSpan WithRemoteAddress(this IRequestSpan span, Uri remoteUri) { if (span.CanWrite) { span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.RemoteHostname, remoteUri.Host); span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.RemotePort, $"{remoteUri.Port}"); } return(span); }
private static void AddCompressionTags(IRequestSpan span, double ratio, bool used) { if (span.CanWrite) { span.SetAttribute(InnerRequestSpans.CompressionSpan.Attributes.CompressionRatio, ratio.ToString("0.0000", CultureInfo.InvariantCulture)); span.SetAttribute(InnerRequestSpans.CompressionSpan.Attributes.CompressionUsed, used); } }
/// <inheritdoc /> public Task <HttpResponseMessage> DeleteAsync(string path, IRequestSpan parentSpan, IRequestSpan encodeSpan, CancellationToken token) { var requestUri = GetUri(path); parentSpan.WithRemoteAddress(requestUri); encodeSpan.Dispose(); using var dispatchSpan = parentSpan.DispatchSpan(); return(HttpClient.DeleteAsync(requestUri, token)); }
protected async Task <string> SaslList(IConnection connection, IRequestSpan span, CancellationToken token) { using var op = new SaslList() { Timeout = Timeout, Span = span, }; OperationConfigurator.Configure(op, SaslOptions.Instance); return(await SendAsync(op, connection, token).ConfigureAwait(false)); }
public static IRequestSpan WithCommonTags(this IRequestSpan span) { if (span.CanWrite) { span.SetAttribute(OuterRequestSpans.Attributes.System.Key, OuterRequestSpans.Attributes.System.Value); span.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.NetTransport.Key, InnerRequestSpans.DispatchSpan.Attributes.NetTransport.Value); } return(span); }
internal static IRequestSpan DispatchSpan(this IRequestSpan parentSpan, FunctionOptionsBase eventingFunctionOptions) { var childSpan = DispatchSpan(parentSpan); if (childSpan.CanWrite) { childSpan.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.OperationId, eventingFunctionOptions.ClientContextId ?? Guid.NewGuid().ToString()); } return(childSpan); }
internal static IRequestSpan DispatchSpan(this IRequestSpan parentSpan, IViewQuery viewQuery) { var childSpan = DispatchSpan(parentSpan); if (childSpan.CanWrite) { childSpan.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.OperationId, viewQuery.ClientContextId ?? Guid.NewGuid().ToString()); } return(childSpan); }
internal static IRequestSpan DispatchSpan(this IRequestSpan parentSpan, AnalyticsOptions request) { var childSpan = DispatchSpan(parentSpan); if (childSpan.CanWrite) { childSpan.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.OperationId, request.ClientContextIdValue ?? Guid.NewGuid().ToString()); } return(childSpan); }
internal static IRequestSpan DispatchSpan(this IRequestSpan parentSpan, IOperation operation) { var childSpan = DispatchSpan(parentSpan); if (childSpan.CanWrite) { childSpan.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.OperationId, operation.Opaque.ToStringInvariant()); } return(childSpan); }
internal static IRequestSpan CompressionSpan(this IRequestSpan parentSpan) { var childSpan = parentSpan.ChildSpan(InnerRequestSpans.CompressionSpan.Name); if (childSpan.CanWrite) { childSpan.SetAttribute(InnerRequestSpans.CompressionSpan.Attributes.System.Key, InnerRequestSpans.CompressionSpan.Attributes.System.Value); } return(childSpan); }
/// <inheritdoc /> public Task <HttpResponseMessage> PostAsync(string path, IRequestSpan parentSpan, IRequestSpan encodeSpan, CancellationToken token, EventingFunction eventingFunction = null) { var requestUri = GetUri(path); parentSpan.WithRemoteAddress(requestUri); var content = eventingFunction != null ? new StringContent(eventingFunction.ToJson()) : new StringContent(string.Empty); encodeSpan.Dispose(); using var dispatchSpan = parentSpan.DispatchSpan(); return(HttpClient.PostAsync(requestUri, content, token)); }
internal static IRequestSpan DispatchSpan(this IRequestSpan parentSpan) { var childSpan = parentSpan.ChildSpan(InnerRequestSpans.DispatchSpan.Name); if (childSpan.CanWrite) { childSpan.SetAttribute(InnerRequestSpans.EncodingSpan.Attributes.System.Key, InnerRequestSpans.EncodingSpan.Attributes.System.Value); childSpan.SetAttribute(InnerRequestSpans.DispatchSpan.Attributes.NetTransport.Key, InnerRequestSpans.DispatchSpan.Attributes.NetTransport.Value); } return(childSpan); }
public IInternalSpan InternalSpan(string operationName, IRequestSpan parent) { var activity = new Activity(operationName); if (parent?.Activity == null) { activity.SetIdFormat(ActivityIdFormat.W3C); } var span = new ActivitySpan(this, _diagnosticListener, activity, parent); _diagnosticListener.StartActivity(activity, span); return(span); }
public static IRequestSpan LogOrphaned(this IRequestSpan span) { try { if (span.CanWrite) { span.SetAttribute("orphaned", "true"); } } catch { //ignore likely a duplicate attribute } return(span); }
public IMemoryOwner <byte>?Compress(ReadOnlyMemory <byte> input, IRequestSpan parentSpan) { if (!_clusterOptions.Compression || input.Length < _clusterOptions.CompressionMinSize) { LogSkipLength(_logger, input.Length, _clusterOptions.CompressionMinSize, null); return(null); } using var compressionSpan = parentSpan.CompressionSpan(); var compressed = _compressionAlgorithm.Compress(input); try { var compressedMemory = compressed.Memory; var compressionRatio = compressedMemory.Length == 0 ? 1f : (float)compressedMemory.Length / input.Length; if (compressionRatio > _clusterOptions.CompressionMinRatio) { AddCompressionTags(compressionSpan, compressionRatio, false); LogSkipCompressionRatio(_logger, compressionRatio, _clusterOptions.CompressionMinRatio, null); // Insufficient compression, so drop it compressed.Dispose(); return(null); } AddCompressionTags(compressionSpan, compressionRatio, true); return(compressed); } catch { compressed.Dispose(); throw; } }
public IRequestSpan RequestSpan(string operationName, IRequestSpan parent) => InternalSpan(operationName, parent);
public SearchOptions RequestSpan(IRequestSpan span) { RequestSpanValue = span; return(this); }
private async Task <MultiLookup <byte[]> > ExecuteLookupIn(string id, IEnumerable <LookupInSpec> specs, LookupInOptions options, IRequestSpan span) { //sanity check for deferred bootstrapping errors _bucket.ThrowIfBootStrapFailed(); //Get the collection ID await PopulateCidAsync().ConfigureAwait(false); //add the virtual xattr attribute to get the doc expiration time if (options.ExpiryValue) { specs = specs.Concat(new [] { new LookupInSpec { Path = VirtualXttrs.DocExpiryTime, OpCode = OpCode.SubGet, PathFlags = SubdocPathFlags.Xattr, DocFlags = SubdocDocFlags.None } }); } var lookup = new MultiLookup <byte[]>(id, specs) { Cid = Cid, CName = Name, SName = ScopeName, DocFlags = options.AccessDeletedValue ? SubdocDocFlags.AccessDeleted : SubdocDocFlags.None, Span = span }; _operationConfigurator.Configure(lookup, options); using var cts = CreateRetryTimeoutCancellationTokenSource(options, lookup, out var tokenPair); await _bucket.RetryAsync(lookup, tokenPair).ConfigureAwait(false); return(lookup); }
public IRequestSpan RequestSpan(string operationName, IRequestSpan parent) => NullSpanInstance;
internal static IRequestSpan WithOperation(this IRequestSpan span, IViewQuery viewQuery) { return(span.WithOperation($"{viewQuery.DesignDocName}/{viewQuery.ViewName}")); }