Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver mapp- och filstrukturen för Real-Time instrumentpanelsobjekt när de har synkroniserats till en GitHub- eller Azure Devops-lagringsplats.
Mappstrukturen
När en arbetsyta har synkroniserats till en lagringsplats visas en mapp på den översta nivån för arbetsytan och en undermapp för varje objekt som har synkroniserats. Varje undermapp är formaterad med Objektnamn. Objekttyp
I mappen för instrumentpanelen visas följande filer:
- Plattform: Definierar infrastrukturplattformsvärden som visningsnamn och beskrivning.
- Egenskaper: Definierar objektspecifika värden.
Här är ett exempel på mappstrukturen:
Repository
- Arbetsyta A
- Item_A.KQLDashboard
- .plattform
- RealTimeDashboard-1.json
- Item_A.KQLDashboard
- Arbetsyta B
- Item_B.KQLDashboard
- .plattform
- RealTimeDashboard-2.json
- Item_B.KQLDashboard
Real-Time kontrollpanelsfiler
Följande filer finns i en instrumentpanelsmapp:
.plattform
Filen använder följande schema för att definiera en instrumentpanel i realtid:
{ "$schema": "https://developer.microsoft.com/json-schemas/fabric/gitIntegration/platformProperties/2.0.0/schema.json", "metadata": { "type": "KQLDashboard", "displayName": "", "description": "" }, "config": { "version": "2.0", "logicalId": "" } }RealTimeDashboard.json
Filen använder följande schema för att definiera en instrumentpanel i realtid:
{ "$schema": "", "id": "", "eTag": "\"\"", "schema_version": "", "title": "", "tiles": [ { "id": "", "title": "", "visualType": "", "pageId": "", "layout": { "x": , "y": , "width": , "height": }, "queryRef": { "kind": "", "queryId": "" }, "visualOptions": { "multipleYAxes": { "base": { "id": "", "label": "", "columns": [], "yAxisMaximumValue": , "yAxisMinimumValue": , "yAxisScale": "", "horizontalLines": [] }, "additional": [], "showMultiplePanels": }, "hideLegend": , "legendLocation": "", "xColumnTitle": "", "xColumn": , "yColumns": , "seriesColumns": , "xAxisScale": "", "verticalLine": "", "crossFilterDisabled": , "drillthroughDisabled": , "crossFilter": [ { "interaction": "", "property": "", "parameterId": "", "disabled": } ], "drillthrough": [], "selectedDataOnLoad": { "all": , "limit": }, "dataPointsTooltip": { "all": , "limit": } } } ], "baseQueries": [], "parameters": [ { "kind": "", "id": "", "displayName": "", "description": "", "variableName": "", "selectionType": "", "includeAllOption": , "defaultValue": { "kind": "" }, "dataSource": { "kind": "", "columns": { "value": "" }, "queryRef": { "kind": "", "queryId": "" } }, "showOnPages": { "kind": "" }, "allIsNull": }, ], "dataSources": [ { "id": "", "name": "", "clusterUri": "", "database": "", "kind": "", "scopeId": "" } ], "pages": [ { "name": "", "id": "" } ], "queries": [ { "dataSource": { "kind": "", "dataSourceId": "" }, "text": "", "id": "", "usedVariables": [ "", "" ] } ] }
Realtidsvalidering av instrumentpanel
Real-Time Dashboard-slutpunkt för inläsning validerar JSON utöver standardöverensstämmelse med schema. Överträdelser visas för användare i instrumentpanelens användargränssnitt som felmeddelanden som: Error loading dashboard / Error found at: /<section> / Message: <reason>.
Frågereferensens unikhet
Alla queryId på instrumentbrädan måste refereras exakt en gång, inräknat:
tiles[].queryRef.queryIdbaseQueries[].queryIdparameters[].dataSource.queryRef.queryId
Om en queryId delas mellan två paneler eller mellan en panel och en baseQuery misslyckas verifieringen med: /queries: Some query IDs are used in multiple query references (tiles, base queries, parameters).
När du duplicerar en panel till en ny sida programmässigt duplicerar du även frågan (tilldelar en ny queryId, behåll samma text och dataSource) och pekar den nya panelens queryRef.queryId på den nya frågan.
Unikhet och format för ID
Varje id i tiles[], queries[], baseQueries[], parameters[], dataSources[]och pages[] måste vara:
- Unikt inom dess kategori.
-
En giltig RFC 4122 UUID (till exempel
3e4666bf-d5e5-4aa7-b8ce-cefe41c7568a). Läsbara strängar som råkar ha bindestreck (till exempelmy-tile-0001-0000-0000-000000000001) avvisas vid belastningstillfället med:Needs to follow the UUID format as defined by RFC 4122.
För programmatiska redigeringar genererar du ID:er med ett UUID-bibliotek: uuid.uuid4() för nya ID:er eller uuid.uuid5(namespace, label) för deterministiska ID:er som överlever omkörningar av skript.
Tips/Råd
Om du ser ett läsfel som /tiles/N/queryRef ... must have required property 'baseQueryId' är det faktiska felet vanligtvis ett felaktigt queryRef.queryId inte en saknad baseQueryId. Schemats queryRef är en oneOf mellan { kind: "query", queryId: <uuid> } och { kind: "baseQuery", baseQueryId: <uuid> }. När det inre UUID:t är ogiltigt, misslyckas validatorn query-kind-grenen och rapporterar fel från baseQuery-kind-grenen i stället. Åtgärda UUID och rensa kaskaden.
Identitetsbevarande mellan redigeringar
För att bevara länken mellan filen och live-arbetsyteobjektet ska följande inte ändras för befintliga poster:
- Översta nivån:
id,eTag,schema_version - Per panel:
id,pageId,queryRef.queryId - Per förfrågan:
id,dataSource.dataSourceId - Per dataKälla:
id,scopeId - Per sida:
id - Per parameter:
id,variableName(ochbeginVariableName/endVariableNameförkind: "duration") -
.platform:config.logicalId
Om du ändrar dessa identifierare behandlas ändringen som en borttagning och en ny skapelse vid nästa Update from Git, vilket orsakar förlorad kontext: referenser för fästa objekt, delningsmål och all status som är kopplad till den ursprungliga id.
Parameters
När en panel som använder en parameter (som refereras via frågans usedVariables) läggs till på en ny sida visas inte parametern automatiskt på den nya sidan.
Om parametern är showOnPages.kind"selection"måste du lägga till den nya sidans id till showOnPages.pageIds.
Om parametern har en användbar defaultValuerenderas panelen med standardvärdet.
Parametrar med flera variabler som kind: "duration" parametrar exponerar två variabler via beginVariableName och endVariableName (vanligtvis _startTime och _endTime). De delar ett enda parameterobjekt med en showOnPages inställning.
Exempelredigeringar via Git
Med hjälp av schemat och valideringsanteckningarna kan du göra ändringar i Real-Time instrumentpanelen via Git i stället för via användargränssnittet.
Exempel: Kopiera en panel till en ny sida
Så här kopierar du en panel från sida A till en ny sida B genom att redigera RealTimeDashboard-N.json:
- Lägg till sida B i
pages[]med en nyid. - Djupkopiera källrutan i
tiles[]. Tilldela:- nytt kakel
id(ny GUID) -
pageId= sida B:s ID
- nytt kakel
- Leta upp källfrågan i
queries[]källpanelensqueryRef.queryId. - Gör en djupkopiering av frågan till
queries[]med en nyid. - Uppdatera den klonade rutans
queryRef.queryIdtill den nya sökfrågansid. - För varje parameter som refereras i den klonade frågans
usedVariables[]: omshowOnPages.kind == "selection", läggs sidan B:s ID tillshowOnPages.pageIds. - Kontrollera att inget
queryIdvisas mer än en gång itiles[],baseQueries[]ochparameters[].dataSource.queryRef. - Checka in, skicka och kör Uppdatering från Git på arbetsytan.