GUI del analizador de rendimiento frente a JSON

Un usuario Pregunto ✅

loisloriot

Hola,

Estoy tratando de comprender los datos exportados desde Power BI Performance Analyzer.

La pantalla GUI es bastante fácil de entender y el documento lo explica bien:

  • consulta DAX – si se requería una consulta DAX, este es el tiempo entre el envío de la consulta por parte del objeto visual y el tiempo que tarda Analysis Services en devolver los resultados.
  • Pantalla de visualización – el tiempo necesario para que el elemento visual se dibuje en la pantalla, incluido el tiempo necesario para recuperar cualquier imagen web o geocodificación.
  • Otro – tiempo requerido por el objeto visual para preparar consultas, esperar a que se completen otros objetos visuales o realizar otro procesamiento en segundo plano.

Pero una vez que exporta los datos a un archivo JSON, obtiene una jerarquía/categorías muy diferentes y no puedo encontrar ninguna información al respecto.

Supongo que se parece a lo siguiente:

(de izquierda a derecha)

Acción del usuario
Ciclo de vida del contenedor visual Hacer Transformación de vista de datos
Ciclo de vida del contenedor visual Consulta Generación de consultas
Ciclo de vida del contenedor visual Consulta Ejecutar consulta semántica Ejecutar consulta DAX Ejecutar la solicitud Serializar conjunto de filas

Y:

Lienzo de informe Acción del usuario
Lienzo de informe Ciclo de vida del contenedor visual
Lienzo de informe Hacer
Lienzo de informe Consulta
Lienzo de informe Transformación de vista de datos
Lienzo de informe Generación de consultas
DSE Ejecutar consulta semántica
DSE Ejecutar consulta DAX
COMO Ejecutar la solicitud
COMO Serializar conjunto de filas

Después de probarlo y compararlo, supongo que la GUI consulta DAX es para el JSON Ejecutar consulta DAX y la GUI Pantalla de visualización es para Hacer pero no tengo ni idea del resto sonriente frustrado

¿Me estoy perdiendo de algo? ¿Sabes dónde puedo encontrar más información sobre los datos dentro del archivo JSON y quién los relaciona con la pantalla GUI?

Intenté comparar esto:

GUI del analizador de rendimientoGUI del analizador de rendimiento

Con el JSON exportado:

{"version":"1.0.0","events":[{"name":"User Action","component":"Report Canvas","start":"2019-06-26T09:46:42.601Z","id":"ccdc8d42a77262a7c866","metrics":{"sourceLabel":"UserAction_Refresh"}},{"name":"Visual Container Lifecycle","component":"Report Canvas","start":"2019-06-26T09:46:42.605Z","end":"2019-06-26T09:46:42.689Z","id":"4f4ad20c7589b5410055","metrics":{"status":"finished","visualTitle":"Slicer"}},{"name":"Query","component":"Report Canvas","start":"2019-06-26T09:46:42.606Z","end":"2019-06-26T09:46:42.680Z","id":"ddeb60c0055ae5117113","parentId":"4f4ad20c7589b5410055"},{"name":"Render","component":"Report Canvas","start":"2019-06-26T09:46:42.679Z","end":"2019-06-26T09:46:42.689Z","id":"00c7257f7c270570e97a","parentId":"4f4ad20c7589b5410055"},{"name":"Data View Transform","component":"Report Canvas","start":"2019-06-26T09:46:42.683Z","end":"2019-06-26T09:46:42.684Z","id":"3d1f1275c5e60e2387d7","parentId":"00c7257f7c270570e97a"},{"name":"Query Generation","component":"Report Canvas","start":"2019-06-26T09:46:42.618Z","end":"2019-06-26T09:46:42.619Z","id":"aa1ee88180dc08d344d3","parentId":"ddeb60c0055ae5117113"},{"name":"Execute Semantic Query","component":"DSE","start":"2019-06-26T09:46:42.665Z","end":"2019-06-26T09:46:42.672Z","id":"5e13d473-6a2b-452b-9ca8-84c70e7fcdf4","parentId":"ddeb60c0055ae5117113"},{"name":"Execute DAX Query","component":"DSE","start":"2019-06-26T09:46:42.668Z","end":"2019-06-26T09:46:42.672Z","id":"af473852-aa88-4f43-b379-a841b2a8cee9","parentId":"5e13d473-6a2b-452b-9ca8-84c70e7fcdf4","metrics":{"QueryText":"EVALUATErn  TOPN(101, VALUES('Sources'[Source file name]), 'Sources'[Source file name], 1)rnrnORDER BYrn  'Sources'[Source file name]","RowCount":8}},{"name":"Execute Query","component":"AS","start":"2019-06-26T09:46:42.670Z","end":"2019-06-26T09:46:42.670Z","id":"D8C45547-7EC0-43A1-B33B-2FABBED74ECC","parentId":"af473852-aa88-4f43-b379-a841b2a8cee9"},{"name":"Serialize Rowset","component":"AS","start":"2019-06-26T09:46:42.670Z","end":"2019-06-26T09:46:42.670Z","id":"A4D76E75-1320-49EC-919A-F9B2624AB3F2","parentId":"D8C45547-7EC0-43A1-B33B-2FABBED74ECC"},{"name":"Visual Container Lifecycle","component":"Report Canvas","start":"2019-06-26T09:46:42.607Z","end":"2019-06-26T09:46:42.702Z","id":"0e637d6ab00791aad5dc","metrics":{"status":"finished","visualTitle":"Average of Duration in second by Event component"}},{"name":"Query","component":"Report Canvas","start":"2019-06-26T09:46:42.607Z","end":"2019-06-26T09:46:42.695Z","id":"d328a2280ea702328479","parentId":"0e637d6ab00791aad5dc"},{"name":"Render","component":"Report Canvas","start":"2019-06-26T09:46:42.694Z","end":"2019-06-26T09:46:42.702Z","id":"463a184031590cbdd81b","parentId":"0e637d6ab00791aad5dc"},{"name":"Data View Transform","component":"Report Canvas","start":"2019-06-26T09:46:42.697Z","end":"2019-06-26T09:46:42.698Z","id":"6a9e1b677c169a6de00b","parentId":"463a184031590cbdd81b"},{"name":"Query Generation","component":"Report Canvas","start":"2019-06-26T09:46:42.619Z","end":"2019-06-26T09:46:42.621Z","id":"8b07662b3a29e8dc6800","parentId":"d328a2280ea702328479"},{"name":"Execute Semantic Query","component":"DSE","start":"2019-06-26T09:46:42.665Z","end":"2019-06-26T09:46:42.673Z","id":"73e37c36-c829-4f02-823b-fb73a2233178","parentId":"d328a2280ea702328479"},{"name":"Execute DAX Query","component":"DSE","start":"2019-06-26T09:46:42.668Z","end":"2019-06-26T09:46:42.673Z","id":"c8d980cf-0e50-447d-855a-43ce4efec94d","parentId":"73e37c36-c829-4f02-823b-fb73a2233178","metrics":{"QueryText":"EVALUATErn  TOPN(rn    1002,rn    SUMMARIZECOLUMNS(rn      'Attributes'[Event component],rn      "AverageDuration_in_second", CALCULATE(AVERAGE('Attributes'[Duration in second]))rn    ),rn    [AverageDuration_in_second],rn    0,rn    'Attributes'[Event component],rn    1rn  )rnrnORDER BYrn  [AverageDuration_in_second] DESC, 'Attributes'[Event component]","RowCount":3}},{"name":"Execute Query","component":"AS","start":"2019-06-26T09:46:42.670Z","end":"2019-06-26T09:46:42.673Z","id":"3F0173F8-E264-4F12-BA89-D5F4970725E7","parentId":"c8d980cf-0e50-447d-855a-43ce4efec94d"},{"name":"Serialize Rowset","component":"AS","start":"2019-06-26T09:46:42.673Z","end":"2019-06-26T09:46:42.673Z","id":"63DEC83B-9498-44C8-AED8-42702CB81A8D","parentId":"3F0173F8-E264-4F12-BA89-D5F4970725E7"},{"name":"Visual Container Lifecycle","component":"Report Canvas","start":"2019-06-26T09:46:42.608Z","end":"2019-06-26T09:46:42.730Z","id":"28f4da8fd13884ebb507","metrics":{"status":"finished","visualTitle":"Average of Duration in second by Event name and Event component"}},{"name":"Query","component":"Report Canvas","start":"2019-06-26T09:46:42.608Z","end":"2019-06-26T09:46:42.716Z","id":"a65d5baf00d59810b06d","parentId":"28f4da8fd13884ebb507"},{"name":"Render","component":"Report Canvas","start":"2019-06-26T09:46:42.716Z","end":"2019-06-26T09:46:42.730Z","id":"36e8a808c4b70040268e","parentId":"28f4da8fd13884ebb507"},{"name":"Data View Transform","component":"Report Canvas","start":"2019-06-26T09:46:42.717Z","end":"2019-06-26T09:46:42.719Z","id":"db8658f0dd3873b18360","parentId":"36e8a808c4b70040268e"},{"name":"Query Generation","component":"Report Canvas","start":"2019-06-26T09:46:42.621Z","end":"2019-06-26T09:46:42.622Z","id":"61a0614382d084817bcd","parentId":"a65d5baf00d59810b06d"},{"name":"Execute Semantic Query","component":"DSE","start":"2019-06-26T09:46:42.665Z","end":"2019-06-26T09:46:42.682Z","id":"79d5cfec-127a-437b-b19e-d96d4f5acf3f","parentId":"a65d5baf00d59810b06d"},{"name":"Execute DAX Query","component":"DSE","start":"2019-06-26T09:46:42.669Z","end":"2019-06-26T09:46:42.681Z","id":"d4ea411c-c68f-4294-aaf6-3be4fa459d03","parentId":"79d5cfec-127a-437b-b19e-d96d4f5acf3f","metrics":{"QueryText":"DEFINErn  VAR __DS0Core = rn    SUMMARIZECOLUMNS(rn      'Attributes'[Event name],rn      ROLLUPADDISSUBTOTAL('Attributes'[Event component], "IsGrandTotalColumnTotal"),rn      "AverageDuration_in_second", CALCULATE(AVERAGE('Attributes'[Duration in second]))rn    )rnrn  VAR __DS0CoreOnlyOutputTotals = rn    SELECTCOLUMNS(rn      KEEPFILTERS(FILTER(KEEPFILTERS(__DS0Core), [IsGrandTotalColumnTotal] = FALSE)),rn      "'Attributes'[Event name]", 'Attributes'[Event name],rn      "'Attributes'[Event component]", 'Attributes'[Event component],rn      "AverageDuration_in_second", [AverageDuration_in_second]rn    )rnrn  VAR __DS0CoreTableByDM0 = rn    SELECTCOLUMNS(rn      KEEPFILTERS(FILTER(KEEPFILTERS(__DS0Core), [IsGrandTotalColumnTotal] = TRUE)),rn      "'Attributes'[Event name]", 'Attributes'[Event name],rn      "SortBy_DM0_0", [AverageDuration_in_second]rn    )rnrn  VAR __DS0PrimaryWithSortColumns = rn    NATURALLEFTOUTERJOIN(rn      SUMMARIZE(__DS0Core, 'Attributes'[Event name]),rn      __DS0CoreTableByDM0rn    )rnrn  VAR __DS0Primary = rn    TOPN(201, __DS0PrimaryWithSortColumns, [SortBy_DM0_0], 0, 'Attributes'[Event name], 1)rnrn  VAR __DS0Secondary = rn    TOPN(rn      62,rn      SUMMARIZE(__DS0CoreOnlyOutputTotals, 'Attributes'[Event component]),rn      'Attributes'[Event component],rn      1rn    )rnrnEVALUATErn  __DS0SecondaryrnrnORDER BYrn  'Attributes'[Event component]rnrnEVALUATErn  NATURALLEFTOUTERJOIN(rn    __DS0Primary,rn    SUBSTITUTEWITHINDEX(rn      __DS0CoreOnlyOutputTotals,rn      "ColumnIndex",rn      __DS0Secondary,rn      'Attributes'[Event component],rn      ASCrn    )rn  )rnrnORDER BYrn  [SortBy_DM0_0] DESC, 'Attributes'[Event name], [ColumnIndex]","RowCount":13}},{"name":"Execute Query","component":"AS","start":"2019-06-26T09:46:42.673Z","end":"2019-06-26T09:46:42.680Z","id":"F2CC4AED-5D83-4F64-9FD1-941B655DE695","parentId":"d4ea411c-c68f-4294-aaf6-3be4fa459d03"},{"name":"Serialize Rowset","component":"AS","start":"2019-06-26T09:46:42.680Z","end":"2019-06-26T09:46:42.680Z","id":"D55C90D9-7B48-4019-9856-2A472DBC0AE7","parentId":"F2CC4AED-5D83-4F64-9FD1-941B655DE695"}]}

No entiendo claramente cómo (según el ejemplo que proporcioné), venimos de:

DATOS DE LA GUI DEL ANALIZADOR DE RENDIMIENTO
Nombre Duración (ms)
dropdown 84
consulta DAX 4
Pantalla de visualización 10
Otro 70

a:

DATOS DEL ARCHIVO JSON
Mosaico visual métrico Etiqueta de fuente de métrica Componente Nombre Duración (ms)
UserAction_Refresh Lienzo de informe Acción del usuario /
dropdown Lienzo de informe Ciclo de vida del contenedor visual 84
Lienzo de informe Hacer 10
Lienzo de informe Consulta 74
Lienzo de informe Transformación de vista de datos 1
Lienzo de informe Generación de consultas 1
DSE Ejecutar consulta semántica 7
DSE Ejecutar consulta DAX 4
COMO Ejecutar la solicitud 0
COMO Serializar conjunto de filas 0

y también, dónde encontrar una definición de Lienzo de informe/DSE/AS/¿Visual Container Lifecycle y todos los demás?

¡Gracias!

lois

@loisloriot,

Actualmente no hay ningún documento que pueda explicar todos los campos en el archivo json exportado. Le sugiero que envíe su idea aquí para que el equipo de power bi conozca sus requisitos.

Saludos,

jimmy tao

loisloriot

En respuesta a v-yuta-msft

Hola @v-yuta-msft,

Simplemente lo hizo:

https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/38054662-performance-analyzer-jso…

¡Gracias!

loisloriot

En respuesta a loisloriot

Hola @v-yuta-msft,

¡También agregué un comentario en MicrosoftDoc GitHub ya que está vinculado al documento de MSDN!

https://github.com/MicrosoftDocs/powerbi-docs/issues/1210

Saludos,

Lois

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *