cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

This product reached the end of support date on March 31, 2021.

How many dimension filter values are allowed in a single DMIData3 request?

frank_sauer
Inactive

I am sending the following DMIData3 request (to the partner demo CAS server).

1) Is this valid? I only seem to get data for the last filter value (easyTravel Customer - Review), not all of them. And if I change the order, I get the data for the new transaction that is now in the last position. Can a request have only one value per filter and it picks the last if there are more?

2) Did this change recently, I thought this worked before...

3) I can no longer locate the REST API documentation, where is it?

Thanks,

Frank

Request:

{ "appId" : "CVENT", "viewId" : "ClientView", "dimensionIds" : [ "begT", "bgAppl", "rptGrBoundByMap", "appl", "bgTrans", "sDNSName", "sPort", "anlzGroup" ], "metricIds" : [ "HTErr", "phttpsvrtimedist1", "phttpsvrtimedist2", "phttpsvrtimedist3", "phttpsvrtimedist4" ], "resolution" : "r", "timeBegin" : 1394631900000, "timeEnd" : 1394632200000, "timeout" : 180000, "timePeriod" : "p", "numberOfPeriods" : 1, "dimFilters" : [ [ "bgAppl", "easyTravel B2B", false ], [ "bgAppl", "easyTravel Customer", false ], [ "rptGrBoundByMap", "Easytravel Back-end", false ], [ "rptGrBoundByMap", "Front-Ends", false ], [ "appl", "easyTravel Business Backend --> Java", false ], [ "appl", "easyTravel Customer Frontend --> Java", false ], [ "bgTrans", "easyTravel Customer - Finish", false ], [ "bgTrans", "easyTravel Customer - Home", false ], [ "bgTrans", "easyTravel Customer - Payment", false ], [ "bgTrans", "easyTravel Customer - Review", false ] ] }

Response:

{"columnHeader":["begT","bgAppl","rptGrBoundByMap","appl","bgTrans","sDNSName","sPort","anlzGroup","HTErr","phttpsvrtimedist1","phttpsvrtimedist2","phttpsvrtimedist3","phttpsvrtimedist4"],"formattedData":[["03/12/2014 09:45","easyTravel Customer","Front-Ends","easyTravel Customer Frontend --\u003e Java","easyTravel Customer - Review","12.107.189.207","8080","Web","0.0","19.0","0.0","0.0","0.0"],["03/12/2014 09:45","easyTravel Customer","Front-Ends","easyTravel Customer Frontend --\u003e Java","easyTravel Customer - Review","12.107.189.210","8080","Web","0.0","27.0","0.0","0.0","0.0"]],"rawData":[[1.3946319E12,null,null,null,null,null,8080.0,10001.0,0.0,19.0,0.0,0.0,0.0],[1.3946319E12,null,null,null,null,null,8080.0,10001.0,0.0,27.0,0.0,0.0,0.0]],"timeBegin":1394631900000,"timeEnd":1394632200000,"dmiServiceError":[{"error":false,"info":false,"warning":false}],"timeout":false,"timeoutValue":180000,"columnUnit":["","","","","","","","","","","","",""],"columnHeaderName":["Time","Application","Tier (obsolete)","Software service","Transaction","Server name","Server port","Analyzer group","HTTP errors","HTTP response time (range 1)","HTTP response time (range 2)","HTTP response time (range 3)","HTTP response time (range 4)"],"columnRendererIds":["DATE","STRING","STRING","STRING","STRING","STRING","INT","ENUM","NUMBER","NUMBER","NUMBER","NUMBER","NUMBER"]}
12 REPLIES 12

ulf_thornander3
Inactive

frank_sauer
Inactive

Yes, thank you! Now I can verify if that documentation answers my other question...

frank_sauer
Inactive

Do you happen to know the answer to the other question? Can I have multiple occurrences of :

[ "bgTrans", "value 1", false ],

[ "bgTrans", "value 2", false ],

etc.

in dimFilters? The documentation only has examples with 1 value. The SimpleReport DMI UI is capable of combining multiple filter values for the same dimension... How does that translate to the REST query?

I just ran the above query again without the last [ "bgTrans", "easyTravel Customer - Review", false ]

and it returned data for (only) [ "bgTrans", "easyTravel Customer - Payment", false ]

{"columnHeader":["begT","bgAppl","rptGrBoundByMap","appl","bgTrans","sDNSName","sPort","anlzGroup","HTErr","phttpsvrtimedist1","phttpsvrtimedist2","phttpsvrtimedist3","phttpsvrtimedist4"],"formattedData":[["03/12/2014 09:45","easyTravel Customer","Front-Ends","easyTravel Customer Frontend --\u003e Java","easyTravel Customer - Payment","12.107.189.207","8080","Web","0.0","12.0","0.0","0.0","0.0"],["03/12/2014 09:45","easyTravel Customer","Front-Ends","easyTravel Customer Frontend --\u003e Java","easyTravel Customer - Payment","12.107.189.210","8080","Web","0.0","14.0","0.0","0.0","0.0"]],"rawData":[[1.3946319E12,null,null,null,null,null,8080.0,10001.0,0.0,12.0,0.0,0.0,0.0],[1.3946319E12,null,null,null,null,null,8080.0,10001.0,0.0,14.0,0.0,0.0,0.0]],"timeBegin":1394631900000,"timeEnd":1394632200000,"dmiServiceError":[{"error":false,"info":false,"warning":false}],"timeout":false,"timeoutValue":180000,"columnUnit":["","","","","","","","","","","","",""],"columnHeaderName":["Time","Application","Tier (obsolete)","Software service","Transaction","Server name","Server port","Analyzer group","HTTP errors","HTTP response time (range 1)","HTTP response time (range 2)","HTTP response time (range 3)","HTTP response time (range 4)"],"columnRendererIds":["DATE","STRING","STRING","STRING","STRING","STRING","INT","ENUM","NUMBER","NUMBER","NUMBER","NUMBER","NUMBER"]}

frank_sauer
Inactive

I just figured out the actual answer: For each dimension you add a SINGLE array in dimFilters, the first string element is the id of the dimension and the content of the second string is the key for this answer: It will have ALL the desired values separated by '|' just as shown in the exported data from the simple DMI report UI.... The third value is a boolean indicating whether the condition has to be reversed (!= instead of ==)

The other part to the answer is that you have to be careful what filter values to submit in a single request, for example, if you select application A and transactions from application B you'll get no data obviously.

By the way: None of this is in the documentation

ulf_thornander3
Inactive

If it's not then please log it under ER and it will turn up in the online documentation soon and in the PDF later.

Hey, the same way as you specify alternative filter values in DMI UI, you can do in REST query. Here is what Export REST query method returns for the following simple DMI table shown below.

In short what you want to do is:

[ "bgTrans", "easyTravel B2B - Home | easyTravel B2B - Journey", false ]
{
"appId": "CVENT",
"viewId": "ClientView",
"dataSourceId": "ALL_AGGR",
"dimensionIds": [
"bgTrans"
],
"metricIds": [],
"dimFilters": [
[
"bgTrans",
"easyTravel B2B - Home | easyTravel B2B - Journey",
false
]
],
"metricFilters": [],
"sort": [],
"top": 1000,
"resolution": "r",
"timePeriod": "Today",
"numberOfPeriods": 0,
"timeBegin": 1448233200000,
"timeEnd": 1448262900000
}

frank_sauer
Inactive

Thank you Sebastian, I had come to that same conclusion. Where do I find that export REST query method? I only see export data in the UI

You need to create the

DMI_REST_EXPORT_USERS

system property with names of users who should see that option.

I note that this export REST query option appears to give incorrect values for the timePeriod field. Your example above has:

"timePeriod":"Today",

whereas the documentation suggest this ought to be

 "timePeriod":"T",

I also see "1period" instead of "p" etc...

I also notice other mistakes in this export REST query option -

When using a 'not' dimension filter, the export contains "true" as the final argument of the triplet, whereas the documentation suggest this ought to be 1 or NOT;

using the query as exported gives incorrect response from the query as it doesn't negate the filter. swapping this for "1" or "NOT" works correctly.

dimFiltersarray of Strings

Array of dimension filters. The array structure is as follows:

  • [0]: dimension ID, as returned by getDimensions()
  • [1]: as per description of filter in the table above
  • [2]: filter negation trigger, if it is present and contains the value “NOT” or “1”.

andrzej_lecki
Dynatrace Advisor
Dynatrace Advisor

In 17.0 release system properties DMI_REST_EXPORT_USERS, DMI_SQL_DEBUG_USERS was replaced by DMI_DEBUG_MODE.
For particular user you need to add property DMI_DEBUG_MODE and specify which information you want .

You can specify one or many of the possible entries: SQL,ReportDefinition,Rest or all for all.

The bug(s) mentioned by Gary will be fixed in new releases.