0

I'm trying to query data from Azure Time Series Insights Preview using JavaScript and the tsiclient library. My code follows the format from the github documentation but when I push the query, I get the 500 'internal service error' POST error.

My code:

var data = [];
    data.push(new tsiClient.ux.TsqExpression(
        // instanceObject
        {   
            timeSeriesId: ['CSIRO_Density-SC503_DPV'] 
        },
        // variableObject
        { 
            rawdata: {
                kind: 'numeric',
                value: {
                    tsx: 'rawdata.value'
                },
                filter: null,
                aggregation: null
            }
        },
        // searchSpan
        { 
            from: startDate,
            to: endDate,
            bucketSize: '5m'
        },
        // color
        '#60B9AE',
        // alias
        'Tag_Values',
        // contextMenu
        null
    ));
    authContext.getTsiToken().then(function(token) {
        tsiClient.server.getTsqResults(
           token, 
           environmentFqdn,
           data.map(ae => ae.toTsq())).then(function(result) {
               console.log(result);
           });
    });

Does anyone have any experience with this?

Edit - full response:

code: "InternalServerError"
message: "Internal server error. Please retry your request later."

Last edit! I figured out the problem - a syntax error on the variable object:

'rawdata.value'

Should have been

'$event.[value]'
Reece
  • 58
  • 6

1 Answers1

0

You are right on the Value variable , it should be something like below.

value: {tsx: '$event.value'}

Here is the sample which i tried for Basic chart with PAYG SKU, and it worked for me.

var linechartTsqExpressions = [];
                var startDate = new Date('2017-04-20T20:00:00Z');
                var endDate = new Date(startDate.valueOf() + 1000*60*60*24*30);

                linechartTsqExpressions.push(new tsiClient.ux.TsqExpression(
                    {timeSeriesId: ['df4412c4-dba2-4a52-87af-780e78ff156b']}, // instance json
                    {Max: {
                        kind: 'numeric',
                        value: {tsx: '$event.value.Double'},
                        filter: null,
                        aggregation: {tsx: 'max($value)'}
                    }}, // variable json
                    { from: startDate, to: endDate, bucketSize: '6h' }, // search span
                    '#60B9AE', // color
                    'MaxValue')); // alias
                linechartTsqExpressions.push(new tsiClient.ux.TsqExpression(
                    {timeSeriesId: ['df4412c4-dba2-4a52-87af-780e78ff156b']}, // instance json
                    {Avg: {
                        kind: 'numeric',
                        value: {tsx: '$event.value.Double'},
                        filter: null,
                        aggregation: {tsx: 'avg($value)'}
                    }}, // variable json
                    { from: startDate, to: endDate, bucketSize: '6h' }, // search span
                    '#D869CB', // color
                    'AvgValue')); // 

                var eventsTsqExpressions = [new tsiClient.ux.TsqExpression(
                    {timeSeriesId: ['df4412c4-dba2-4a52-87af-780e78ff156b']}, // instance json
                    {Avg: {
                        kind: 'numeric',
                        value: {tsx: '$event.value.Double'},
                        filter: null,
                        aggregation: {tsx: 'avg($value)'}
                    }}, // variable json
                    { from: startDate, to: new Date(startDate.valueOf() + 1000*60*60*2), bucketSize: '1m'}, // search span
                    '#D869CB', // color
                    'AvgValue')]; // 
                authContext.getTsiToken().then(function(token){
                    tsiClient.server.getTsqResults(token, '10000000-0000-0000-0000-100000000109.env.timeseries.azure.com', linechartTsqExpressions.map(function(ae){return ae.toTsq()})).then(function(result){
                        var transformedResult = tsiClient.ux.transformTsqResultsForVisualization(result, linechartTsqExpressions);
                        var lineChart = new tsiClient.ux.LineChart(document.getElementById('chart1'));
                        lineChart.render(transformedResult, {theme: 'dark', grid: true, tooltip: true, legend: 'compact'}, linechartTsqExpressions);
                    });
                    tsiClient.server.getTsqResults(token, '10000000-0000-0000-0000-100000000109.env.timeseries.azure.com', eventsTsqExpressions.map(function(ae){return ae.toTsq(true, true)})).then(function(result){
                        var transformedEvents = tsiClient.ux.transformTsqResultsToEventsArray(result);
                        var eventsTable = tsiClient.ux.EventsTable(document.getElementById('chart2'));
                        eventsTable.render(transformedEvents, {theme: 'dark', offset: 'Local'}, true);
                    });
                });

You can use this repo for future reference. Hope it helps.

Mohit Verma
  • 5,140
  • 2
  • 12
  • 27