Отслеживание метрических значений ошибок приложения? - PullRequest
0 голосов
/ 21 марта 2019

Я хочу отслеживать метрики с помощью nameList и valueList, но при запуске модульных тестов отображается следующая ошибка:

$ exception {System.ArgumentException: Невозможно обработать указанное значение.Ожидается числовое значение, но указанное metricValue имеет тип Microsoft.ApplicationInsights.Metric.Вы указали правильную конфигурацию метрики?

Вот мой код:

private void CreateMetric(String metricName, double Amount, List<Property> additionalProperties)
    {
        List<String> metrycsNameList = new List<String>();
        List<String> metrycsValueList = new List<String>();
        try
        {
           additionalProperties.ForEach(property => metrycsValueList.Add(property.Value));
           additionalProperties.ForEach(property => metrycsNameList.Add(property.Name));
           Metric metric = _client.GetMetric(new MetricIdentifier("MetricNamespace", metricName, metrycsNameList));

            AddMetricValues(metric, metrycsValueList);
        }
        catch (Exception ex)
        {
            throw new CustomMetricException("CustomMetricException", "Error adding a Custom Metric", ex.StackTrace);
        }

    }

// Checking dimension of the list (up to 10) and adding metrics.
    private void AddMetricValues(Metric metric, List<String> metrycsValueList)
    {
        int numberOfElements = metrycsValueList.Count;

        switch (numberOfElements)
        {
            case 1:
                metric.TrackValue(metric, metrycsValueList[0]);
                break;
            case 2:
                metric.TrackValue(metric, metrycsValueList[0], metrycsValueList[1]);
                break;
            case 3:
                metric.TrackValue(metric, metrycsValueList[0], metrycsValueList[1], metrycsValueList[2]);
                break;
            ...
     }

А вот как я вызываю метод со списками:

public void AddCustomMetricTestTupla()
{
    List<Property> propertiesList = new List<Property>();
    propertiesList.Add(new Property("propertyExample", "value"));
    propertiesList.Add(new Property("propertyExample1", "value2"));
    propertiesList.Add(new Property("propertyExample2", "value3"));

    //Tests method AddCustomMetric giving a tuple as a param.
    using (AzureInsightsClient azureInsightsClient = new AzureInsightsClient(myClientKey))
    {
        azureInsightsClient.FlushMetrics();
        azureInsightsClient.AddCustomMetric("Example", 2, propertiesList);
    }
}

Кто-нибудь знает, что я делаю не так?

1 Ответ

0 голосов
/ 22 марта 2019

TrackValue не нуждается в объекте Metric класса. docs.microsoft.com / ru-ru / dotnet / api /… Ожидается числовое значение, поэтому вы получаете эту ошибку.

Сообщение от @Chetan Ranpariya

...