Hi,
This I'm quite sure is a stupid question but I'm struggling to work with the metrics that return from an analytics query. In this case I'm performing a Queue Observation query. I can get the results out and loop through each of them but I'm not entirely sure how I should access each one individually.
For example I want to add a custom label and display them in a WPF app. How can I access the data - like, assign "Oonqueueueusers" to a specific variable (or display in a text box)?
This is the query I have so far and it works (in as much as it returns me the data) but I'm at a loss on how to access it to better present it. In this example I'm just writing it to the console, and I get output like:
oInteracting: 1
oWaiting: 0
oMemberUsers: 17
oOnQueueUsers: 1
But I'd like to be able to have these values in individual text boxes, or in a data grid.
var analyticsApi = new AnalyticsApi();
var body = new QueueObservationQuery();
var filter = new QueueObservationQueryFilter();
List<QueueObservationQueryPredicate> predicates = new List<QueueObservationQueryPredicate>();
QueueObservationQueryPredicate predicateQueue = new QueueObservationQueryPredicate();
predicateQueue.Type = QueueObservationQueryPredicate.TypeEnum.Dimension;
predicateQueue.Dimension = QueueObservationQueryPredicate.DimensionEnum.Queueid;
predicateQueue._Operator = QueueObservationQueryPredicate.OperatorEnum.Matches;
predicateQueue.Value = queueId;
predicates.Add(predicateQueue);
QueueObservationQueryPredicate predicateMedia = new QueueObservationQueryPredicate();
predicateMedia.Type = QueueObservationQueryPredicate.TypeEnum.Dimension;
predicateMedia.Dimension = QueueObservationQueryPredicate.DimensionEnum.Mediatype;
predicateMedia._Operator = QueueObservationQueryPredicate.OperatorEnum.Matches;
predicateMedia.Value = "voice";
predicates.Add(predicateMedia);
List <QueueObservationQuery.MetricsEnum> metrics = new List<QueueObservationQuery.MetricsEnum>();
metrics.Add(QueueObservationQuery.MetricsEnum.Oonqueueusers);
metrics.Add(QueueObservationQuery.MetricsEnum.Ooffqueueusers);
metrics.Add(QueueObservationQuery.MetricsEnum.Owaiting);
metrics.Add(QueueObservationQuery.MetricsEnum.Ointeracting);
metrics.Add(QueueObservationQuery.MetricsEnum.Omemberusers);
filter.Predicates = predicates;
filter.Type = QueueObservationQueryFilter.TypeEnum.And;
body.Filter = filter;
body.Metrics = metrics;
try
{
// Query for queue observations
QueueObservationQueryResponse result = analyticsApi.PostAnalyticsQueuesObservationsQuery(body);
foreach (var dataresult in result.Results)
{
foreach (var metric in dataresult.Data)
{
Console.WriteLine($"{metric.Metric}: {metric.Stats.Count}");
}
}
}
catch (Exception error)
{
Console.WriteLine("Exception when calling AnalyticsApi.PostAnalyticsQueuesObservationsQuery: " + error.Message);
}