Пример #1
0
        static MetricNames()
        {
            _databaseVendorAll = GetEnumerationFunc <DatastoreVendor, MetricName>(vendor =>
                                                                                  MetricName.Create(Datastore + PathSeparator + EnumNameCache <DatastoreVendor> .GetName(vendor) + PathSeparator + All));
            _databaseVendorAllWeb = GetEnumerationFunc <DatastoreVendor, MetricName>(vendor =>
                                                                                     MetricName.Create(Datastore + PathSeparator + EnumNameCache <DatastoreVendor> .GetName(vendor) + PathSeparator + AllWeb));
            _databaseVendorAllOther = GetEnumerationFunc <DatastoreVendor, MetricName>(vendor =>
                                                                                       MetricName.Create(Datastore + PathSeparator + EnumNameCache <DatastoreVendor> .GetName(vendor) + PathSeparator + AllOther));

            var operations = new HashSet <string>(SqlParser.Operations);

            operations.Add(DatastoreUnknownOperationName);
            _databaseVendorOperations = GetEnumerationFunc <DatastoreVendor, Func <string, MetricName> >(
                vendor =>
            {
                var dict             = new Dictionary <string, MetricName>(operations.Count);
                var metricNamePrefix = DatastoreOperation + PathSeparator + EnumNameCache <DatastoreVendor> .GetName(vendor) + PathSeparator;
                foreach (var operation in operations)
                {
                    dict[operation] = MetricName.Create(metricNamePrefix + operation);
                }

                return(operation => (dict.TryGetValue(operation, out var name))
                        ? name
                        : MetricName.Create(DatastoreOperation, EnumNameCache <DatastoreVendor> .GetName(vendor), operation));
            });
        }
Пример #2
0
        public static MetricName GetMessageBroker(MessageBrokerDestinationType type, MessageBrokerAction action,
                                                  string vendor, string queueName)
        {
            var normalizedType = NormalizeMessageBrokerDestinationTypeForMetricName(type);

            return((queueName != null)
                ? MetricName.Create(MessageBrokerPrefix, vendor, normalizedType, action, MessageBrokerNamed, queueName)
                : MetricName.Create(MessageBrokerPrefix, vendor, normalizedType, action, MessageBrokerTemp));
        }
Пример #3
0
        /// <summary>
        /// Returns the a tuple of two metric names. The first one ends in /all and the second one ends in allWeb
        /// or allOther depending on the input value of isWeb.
        /// </summary>
        /// <param name="type">The type of the parent</param>
        /// <param name="accountId">The account Id of the parent</param>
        /// <param name="app">The app value of the parent</param>
        /// <param name="transport">e.g. http, grpc</param>
        /// <param name="isWeb">if true, creates the allWeb metric name. if false, creates the allOther metric name</param>
        /// <returns>A tuple of two strings:
        /// <para>TransportDuration/{parent.type}/{parent.accountId}/{parent.appId}/{transport}/all</para>
        /// and
        /// <para>TransportDuration/{parent.type}/{parent.accountId}/{parent.appId}/{transport}/{allWeb|allOther}</para>
        /// </returns>
        public static (MetricName all, MetricName webOrOther) GetDistributedTraceTransportDuration(
            string type,
            string accountId,
            string app,
            string transport,
            bool isWeb)
        {
            var prefix = GetDistributedTraceMetricPrefix(DistributedTraceTransportDurationPs, type, accountId, app, transport);

            return(all : MetricName.Create(prefix + All), webOrOther : MetricName.Create(prefix + (isWeb ? AllWeb : AllOther)));
        }
Пример #4
0
 public static MetricName GetExternalTransaction(string host, string crossProcessId, string transactionName)
 {
     return(MetricName.Create("ExternalTransaction", host, crossProcessId, transactionName));
 }
Пример #5
0
 public static MetricName GetExternalApp(string host, string crossProcessId)
 {
     return(MetricName.Create("ExternalApp", host, crossProcessId, All));
 }
Пример #6
0
 public static MetricName GetClientApplication(string crossProcessId)
 {
     return(MetricName.Create("ClientApplication", crossProcessId, All));
 }
Пример #7
0
 public static MetricName GetExternalErrors(string server)
 {
     return(MetricName.Create(External, server, "errors"));
 }
Пример #8
0
 public static MetricName GetExternalHost(string host, string library, string operation = null)
 {
     return(operation != null
         ? MetricName.Create(External, host, library, operation)
         : MetricName.Create(External, host, library));
 }
Пример #9
0
 public static MetricName GetExternalHostRollup(string host)
 {
     return(MetricName.Create(External, host, All));
 }
Пример #10
0
 public static MetricName GetDatastoreInstance(DatastoreVendor vendor, string host, string portPathOrId)
 {
     return(MetricName.Create(DatastoreInstance, EnumNameCache <DatastoreVendor> .GetName(vendor), host, portPathOrId));
 }
Пример #11
0
 public static MetricName GetDatastoreStatement(DatastoreVendor vendor, string model,
                                                string operation = null)
 {
     operation = operation ?? DatastoreUnknownOperationName;
     return(MetricName.Create(DatastoreStatement, EnumNameCache <DatastoreVendor> .GetName(vendor), model, operation));
 }
Пример #12
0
        public static MetricName TransactionTotalTime(TransactionMetricName transactionMetricName)
        {
            var prefix = transactionMetricName.IsWebTransactionName ? WebTransactionTotalTimeAll : OtherTransactionTotalTimeAll;

            return(MetricName.Create(prefix.ToString(), transactionMetricName.UnPrefixedName));
        }
Пример #13
0
 public static MetricName GetDotNetInvocation(params string[] segments)
 {
     return(MetricName.Create(DotNetInvocation, segments));
 }
Пример #14
0
 public static MetricName GetErrorTransaction(string transactionMetricName)
 {
     return(MetricName.Create(Errors, transactionMetricName));
 }
Пример #15
0
 public static MetricName GetCustom(string suffix)
 {
     return(MetricName.Create(Custom, suffix));
 }