0

我正在尝试使用 JavaScript 和 tsiclient 库从 Azure 时序见解预览中查询数据。我的代码遵循 github 文档中的格式,但是当我推送查询时,我收到 500 'internal service error' POST 错误。

我的代码:

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);
           });
    });

有人对这个有经验么?

编辑 - 完整回复:

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

最后编辑!我发现了问题 - 变量对象的语法错误:

'rawdata.value'

本来应该

'$event.[value]'
4

1 回答 1

0

你在Value变量上是对的,它应该如下所示。

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

这是我尝试使用 PAYG SKU 的基本图表的示例,它对我有用。

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);
                    });
                });

您可以使用此repo以供将来参考。希望能帮助到你。

于 2019-06-20T06:46:44.093 回答