private bool ValidateCollectionLimits(AttributeClassification classification, string name) { int attribCount = 0; switch (classification) { case AttributeClassification.Intrinsics: attribCount = _attribCountIntrinsicAttribs; break; case AttributeClassification.AgentAttributes: attribCount = _attribCountAgentAttribs; break; case AttributeClassification.UserAttributes: attribCount = _attribCountUserAttribs; break; } if (classification == AttributeClassification.UserAttributes && attribCount >= MaxCountUserAttrib) { Log.Debug($"{classification} Attribute '{name}' was not recorded - A max of {MaxCountUserAttrib} {classification} attributes may be supplied."); return(false); } if (Count >= MaxCountAllAttrib) { Log.Debug($"{classification} Attribute '{name}' was not recorded - A max of {MaxCountAllAttrib} attributes may be supplied."); return(false); } return(true); }
protected override IEnumerable <AttributeValue> GetAttribValuesImpl(AttributeClassification classification) { var dic = GetAttribValues(classification, false); return(dic == null ? Enumerable.Empty <AttributeValue>() : dic); }
public IDictionary <string, object> GetAttributeValuesDic(AttributeClassification classification) { var result = new Dictionary <string, object>(); foreach (var attribVal in GetAttribValuesImpl(classification)) { result[attribVal.AttributeDefinition.Name] = attribVal.Value; } return(result); }
public AttributeDefinition(string name, AttributeClassification classification, Dictionary <AttributeDestinations, bool> availability) { Name = name; Classification = classification; _availability = availability; foreach (var k in availability.Where(x => x.Value)) { AttributeDestinations |= k.Key; } }
private void IncrementAttribCount(AttributeClassification classification) { switch (classification) { case AttributeClassification.Intrinsics: Interlocked.Increment(ref _attribCountIntrinsicAttribs); break; case AttributeClassification.AgentAttributes: Interlocked.Increment(ref _attribCountAgentAttribs); break; case AttributeClassification.UserAttributes: Interlocked.Increment(ref _attribCountUserAttribs); break; } }
private MapField <string, AttributeValue> GetAttribValuesInternal(AttributeClassification classification) { switch (classification) { case AttributeClassification.AgentAttributes: return(_span.AgentAttributes); case AttributeClassification.UserAttributes: return(_span.UserAttributes); case AttributeClassification.Intrinsics: return(_span.Intrinsics); default: return(null); } }
private List <AttributeValue> GetAttribValues(AttributeClassification classification, bool withCreate) { switch (classification) { case AttributeClassification.Intrinsics: return(withCreate ? _attribValuesIntrinsicAttribs ?? (_attribValuesIntrinsicAttribs = new List <AttributeValue>()) : _attribValuesIntrinsicAttribs); case AttributeClassification.AgentAttributes: return(withCreate ? _attribValuesAgentAttribs ?? (_attribValuesAgentAttribs = new List <AttributeValue>()) : _attribValuesAgentAttribs); case AttributeClassification.UserAttributes: return(withCreate ? _attribValuesUserAttribs ?? (_attribValuesUserAttribs = new List <AttributeValue>()) : _attribValuesUserAttribs); } return(null); }
public static IDictionary <string, object> AttributesOfClass(this EventWireModel model, AttributeClassification classification) { return(model.AttributeValues.GetAttributeValuesDic(classification)); }
public static IDictionary <string, object> GetAttributes(this ErrorTraceWireModel errorTrace, AttributeClassification attributeClassification) { switch (attributeClassification) { case AttributeClassification.Intrinsics: return(errorTrace.Attributes.Intrinsics.ToDictionary()); case AttributeClassification.AgentAttributes: return(errorTrace.Attributes.AgentAttributes.ToDictionary()); case AttributeClassification.UserAttributes: return(errorTrace.Attributes.UserAttributes.ToDictionary()); default: throw new NotImplementedException(); } }
public static IDictionary <string, object> GetAttributes(this TransactionTraceWireModel transactionTrace, AttributeClassification attributeClassification) { switch (attributeClassification) { case AttributeClassification.Intrinsics: return(transactionTrace.TransactionTraceData.Attributes.Intrinsics); case AttributeClassification.AgentAttributes: return(transactionTrace.TransactionTraceData.Attributes.AgentAttributes); case AttributeClassification.UserAttributes: return(transactionTrace.TransactionTraceData.Attributes.UserAttributes); default: throw new NotImplementedException(); } }
public static IDictionary <string, object> GetAttributes(this CustomEventWireModel customEvent, AttributeClassification attributeClassification) { return(customEvent.AttributeValues.ToDictionary(attributeClassification)); }
public IEnumerable <IAttributeValue> GetAttributeValues(AttributeClassification classification) { return(GetAttribValuesImpl(classification).Cast <IAttributeValue>()); }
public static AttributeDefinitionBuilder <long, long> CreateLong(string name, AttributeClassification classification) { return(Create <long>(name, classification)); }
public static AttributeDefinitionBuilder <bool, bool> CreateBool(string name, AttributeClassification classification) { return(Create <bool>(name, classification)); }
public static AttributeDefinitionBuilder <string, string> CreateString(string name, AttributeClassification classification) { return(Create <string>(name, classification) .WithPostProcessing((v) => v.TruncateUnicodeStringByBytes(_stringValueMaxLengthBytes))); }
public static AttributeDefinitionBuilder <TValue, TValue> Create <TValue>(string name, AttributeClassification classification) { return(new AttributeDefinitionBuilder <TValue, TValue>(name, classification) .WithConvert((i) => i)); }
protected override IEnumerable <AttributeValue> GetAttribValuesImpl(AttributeClassification classification) { return(GetAttribValuesInternal(classification).Values); }
protected abstract IEnumerable <TAttrib> GetAttribValuesImpl(AttributeClassification classification);
public IDictionary <string, object> GetAttributeValuesDic(AttributeClassification classification) { return(_emptyAttribDic); }
public IEnumerable <IAttributeValue> GetAttributeValues(AttributeClassification classification) { return(_emptyAttribValues); }
private static ReadOnlyDictionary <string, object> ConvertAttribValuesToDictionary(ISpanEventWireModel spanEvent, AttributeClassification classification) { return(new ReadOnlyDictionary <string, object>(spanEvent .GetAttributeValues(classification) .ToDictionary(x => x.AttributeDefinition.Name, x => x.Value))); }
public static void HasAttributes(IEnumerable <ExpectedAttribute> expectedAttributes, AttributeClassification attributeClassification, CustomEventWireModel customEvent) { var succeeded = true; var builder = new StringBuilder(); var actualAttributes = customEvent.GetAttributes(attributeClassification); foreach (var expectedAttribute in expectedAttributes) { if (!actualAttributes.ContainsKey(expectedAttribute.Key)) { builder.AppendFormat("Attribute named {0} was not found in the transaction event.", expectedAttribute); builder.AppendLine(); succeeded = false; continue; } var expectedValue = expectedAttribute.Value; var actualValue = actualAttributes[expectedAttribute.Key] as string; if (expectedValue != null && actualValue != expectedAttribute.Value as string) { builder.AppendFormat("Attribute named {0} in the transaction event had an unexpected value. Expected: {1}, Actual: {2}", expectedAttribute.Key, expectedAttribute.Value, actualValue); builder.AppendLine(); succeeded = false; continue; } } Assert.True(succeeded, builder.ToString()); }
public static void DoesNotHaveAttributes(IEnumerable <string> unexpectedAttributes, AttributeClassification attributeClassification, CustomEventWireModel customEvent) { var succeeded = true; var builder = new StringBuilder(); var actualAttributes = customEvent.GetAttributes(attributeClassification); foreach (var unexpectedAttribute in unexpectedAttributes) { if (actualAttributes.ContainsKey(unexpectedAttribute)) { builder.AppendFormat("Attribute named {0} was found in the transaction event but it should not have been.", unexpectedAttribute); builder.AppendLine(); succeeded = false; } } Assert.True(succeeded, builder.ToString()); }
public static void HasAttributes(IEnumerable <ExpectedAttribute> expectedAttributes, AttributeClassification attributeClassification, ISpanEventWireModel span) { var errorMessageBuilder = new StringBuilder(); var actualAttributes = span.GetAttributeValues(attributeClassification); var allAttributesMatch = ExpectedAttribute.CheckIfAllAttributesMatch(actualAttributes, expectedAttributes, errorMessageBuilder); Assert.True(allAttributesMatch, errorMessageBuilder.ToString()); }
public static AttributeDefinitionBuilder <double, double> CreateDouble(string name, AttributeClassification classification) { return(Create <double>(name, classification)); }
public static void ErrorTraceHasAttributes(IEnumerable <ExpectedAttribute> expectedAttributes, AttributeClassification attributeClassification, ErrorTraceWireModel errorTrace) { var errorMessageBuilder = new StringBuilder(); var actualAttributes = errorTrace.GetAttributes(attributeClassification); var allAttributesMatch = ExpectedAttribute.CheckIfAllAttributesMatch(actualAttributes, expectedAttributes, errorMessageBuilder); Assert.True(allAttributesMatch, errorMessageBuilder.ToString()); }
public static AttributeDefinitionBuilder <TInput, long> CreateLong <TInput>(string name, AttributeClassification classification) { return(new AttributeDefinitionBuilder <TInput, long>(name, classification)); }
public static void ErrorTraceDoesNotHaveAttributes(IEnumerable <string> unexpectedAttributes, AttributeClassification attributeClassification, ErrorTraceWireModel errorTrace) { var errorMessageBuilder = new StringBuilder(); var actualAttributes = errorTrace.GetAttributes(attributeClassification); var allAttributesNotFound = ExpectedAttribute.CheckIfAllAttributesNotFound(actualAttributes, unexpectedAttributes, errorMessageBuilder); Assert.True(allAttributesNotFound, errorMessageBuilder.ToString()); }
public static AttributeDefinitionBuilder <string, string> CreateDBStatement(string name, AttributeClassification classification) { const int dbStmtMaxLength = 1999; return(new AttributeDefinitionBuilder <string, string>(name, classification) .WithConvert((dbStmt) => TruncateDatastoreStatement(dbStmt, dbStmtMaxLength))); }
private ConcurrentDictionary <AttributeDefinition, AttributeValue> GetValueDictionary(AttributeClassification classification, bool withCreate) { switch (classification) { case AttributeClassification.Intrinsics: return(withCreate ? _attribValuesIntrinsicAttribs ?? (_attribValuesIntrinsicAttribs = new ConcurrentDictionary <AttributeDefinition, AttributeValue>()) : _attribValuesIntrinsicAttribs); case AttributeClassification.AgentAttributes: return(withCreate ? _attribValuesAgentAttribs ?? (_attribValuesAgentAttribs = new ConcurrentDictionary <AttributeDefinition, AttributeValue>()) : _attribValuesAgentAttribs); case AttributeClassification.UserAttributes: return(withCreate ? _attribValuesUserAttribs ?? (_attribValuesUserAttribs = new ConcurrentDictionary <AttributeDefinition, AttributeValue>()) : _attribValuesUserAttribs); } return(null); }