keyvault.json 79 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682
  1. {
  2. "__requires": [
  3. {
  4. "type": "grafana",
  5. "id": "grafana",
  6. "name": "Grafana",
  7. "version": "7.4.3"
  8. },
  9. {
  10. "type": "datasource",
  11. "id": "grafana-azure-monitor-datasource",
  12. "name": "Azure Monitor",
  13. "version": "0.3.0"
  14. },
  15. {
  16. "type": "panel",
  17. "id": "graph",
  18. "name": "Graph",
  19. "version": ""
  20. },
  21. {
  22. "type": "panel",
  23. "id": "stat",
  24. "name": "Stat",
  25. "version": ""
  26. },
  27. {
  28. "type": "panel",
  29. "id": "table",
  30. "name": "Table",
  31. "version": ""
  32. }
  33. ],
  34. "editable": true,
  35. "gnetId": null,
  36. "graphTooltip": 0,
  37. "id": null,
  38. "iteration": 1620924220014,
  39. "links": [],
  40. "panels": [
  41. {
  42. "collapsed": false,
  43. "datasource": "$ds",
  44. "gridPos": {
  45. "h": 1,
  46. "w": 24,
  47. "x": 0,
  48. "y": 0
  49. },
  50. "id": 25,
  51. "panels": [],
  52. "title": "Overview",
  53. "type": "row"
  54. },
  55. {
  56. "datasource": "$ds",
  57. "fieldConfig": {
  58. "defaults": {
  59. "color": {
  60. "mode": "thresholds"
  61. },
  62. "custom": {},
  63. "mappings": [],
  64. "thresholds": {
  65. "mode": "percentage",
  66. "steps": [
  67. {
  68. "color": "green",
  69. "value": null
  70. }
  71. ]
  72. }
  73. },
  74. "overrides": []
  75. },
  76. "gridPos": {
  77. "h": 7,
  78. "w": 19,
  79. "x": 0,
  80. "y": 1
  81. },
  82. "id": 9,
  83. "options": {
  84. "colorMode": "value",
  85. "graphMode": "none",
  86. "justifyMode": "center",
  87. "orientation": "auto",
  88. "reduceOptions": {
  89. "calcs": ["lastNotNull"],
  90. "fields": "",
  91. "values": false
  92. },
  93. "text": {},
  94. "textMode": "auto"
  95. },
  96. "pluginVersion": "7.4.3",
  97. "targets": [
  98. {
  99. "appInsights": {
  100. "dimension": [],
  101. "metricName": "select",
  102. "timeGrain": "auto"
  103. },
  104. "azureLogAnalytics": {
  105. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  106. "resultFormat": "time_series",
  107. "workspace": "$ws"
  108. },
  109. "azureMonitor": {
  110. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  111. "aggregation": "Average",
  112. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  113. "dimensionFilter": "*",
  114. "dimensionFilters": [],
  115. "dimensions": [
  116. {
  117. "text": "Activity Type",
  118. "value": "ActivityType"
  119. },
  120. {
  121. "text": "Activity Name",
  122. "value": "ActivityName"
  123. },
  124. {
  125. "text": "Status Code",
  126. "value": "StatusCode"
  127. },
  128. {
  129. "text": "Status Code Class",
  130. "value": "StatusCodeClass"
  131. }
  132. ],
  133. "metricDefinition": "Microsoft.KeyVault/vaults",
  134. "metricName": "Availability",
  135. "metricNamespace": "Microsoft.KeyVault/vaults",
  136. "resourceGroup": "$rg",
  137. "resourceName": "$resource",
  138. "timeGrain": "auto",
  139. "timeGrains": [
  140. {
  141. "text": "auto",
  142. "value": "auto"
  143. },
  144. {
  145. "text": "1 minute",
  146. "value": "PT1M"
  147. },
  148. {
  149. "text": "5 minutes",
  150. "value": "PT5M"
  151. },
  152. {
  153. "text": "15 minutes",
  154. "value": "PT15M"
  155. },
  156. {
  157. "text": "30 minutes",
  158. "value": "PT30M"
  159. },
  160. {
  161. "text": "1 hour",
  162. "value": "PT1H"
  163. },
  164. {
  165. "text": "6 hours",
  166. "value": "PT6H"
  167. },
  168. {
  169. "text": "12 hours",
  170. "value": "PT12H"
  171. },
  172. {
  173. "text": "1 day",
  174. "value": "P1D"
  175. }
  176. ],
  177. "top": "10"
  178. },
  179. "insightsAnalytics": {
  180. "query": "",
  181. "resultFormat": "time_series"
  182. },
  183. "queryType": "Azure Monitor",
  184. "refId": "A",
  185. "subscription": "$sub"
  186. },
  187. {
  188. "appInsights": {
  189. "dimension": [],
  190. "metricName": "select",
  191. "timeGrain": "auto"
  192. },
  193. "azureLogAnalytics": {
  194. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  195. "resultFormat": "time_series",
  196. "workspace": "$ws"
  197. },
  198. "azureMonitor": {
  199. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  200. "aggregation": "Count",
  201. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  202. "dimensionFilter": "*",
  203. "dimensionFilters": [],
  204. "dimensions": [
  205. {
  206. "text": "Activity Type",
  207. "value": "ActivityType"
  208. },
  209. {
  210. "text": "Activity Name",
  211. "value": "ActivityName"
  212. },
  213. {
  214. "text": "Status Code",
  215. "value": "StatusCode"
  216. },
  217. {
  218. "text": "Status Code Class",
  219. "value": "StatusCodeClass"
  220. }
  221. ],
  222. "metricDefinition": "Microsoft.KeyVault/vaults",
  223. "metricName": "ServiceApiResult",
  224. "metricNamespace": "Microsoft.KeyVault/vaults",
  225. "resourceGroup": "$rg",
  226. "resourceName": "$resource",
  227. "timeGrain": "P1D",
  228. "timeGrains": [
  229. {
  230. "text": "auto",
  231. "value": "auto"
  232. },
  233. {
  234. "text": "1 minute",
  235. "value": "PT1M"
  236. },
  237. {
  238. "text": "5 minutes",
  239. "value": "PT5M"
  240. },
  241. {
  242. "text": "15 minutes",
  243. "value": "PT15M"
  244. },
  245. {
  246. "text": "30 minutes",
  247. "value": "PT30M"
  248. },
  249. {
  250. "text": "1 hour",
  251. "value": "PT1H"
  252. },
  253. {
  254. "text": "6 hours",
  255. "value": "PT6H"
  256. },
  257. {
  258. "text": "12 hours",
  259. "value": "PT12H"
  260. },
  261. {
  262. "text": "1 day",
  263. "value": "P1D"
  264. }
  265. ],
  266. "top": "10"
  267. },
  268. "hide": false,
  269. "insightsAnalytics": {
  270. "query": "",
  271. "resultFormat": "time_series"
  272. },
  273. "queryType": "Azure Monitor",
  274. "refId": "B",
  275. "subscription": "f7152080-b4e8-47ee-9c85-7f1d0e6b72dc"
  276. },
  277. {
  278. "appInsights": {
  279. "dimension": [],
  280. "metricName": "select",
  281. "timeGrain": "auto"
  282. },
  283. "azureLogAnalytics": {
  284. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  285. "resultFormat": "time_series",
  286. "workspace": "$ws"
  287. },
  288. "azureMonitor": {
  289. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  290. "aggregation": "Average",
  291. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  292. "dimensionFilter": "*",
  293. "dimensionFilters": [],
  294. "dimensions": [
  295. {
  296. "text": "Activity Type",
  297. "value": "ActivityType"
  298. },
  299. {
  300. "text": "Activity Name",
  301. "value": "ActivityName"
  302. },
  303. {
  304. "text": "Status Code",
  305. "value": "StatusCode"
  306. },
  307. {
  308. "text": "Status Code Class",
  309. "value": "StatusCodeClass"
  310. }
  311. ],
  312. "metricDefinition": "Microsoft.KeyVault/vaults",
  313. "metricName": "ServiceApiLatency",
  314. "metricNamespace": "Microsoft.KeyVault/vaults",
  315. "resourceGroup": "$rg",
  316. "resourceName": "$resource",
  317. "timeGrain": "P1D",
  318. "timeGrains": [
  319. {
  320. "text": "auto",
  321. "value": "auto"
  322. },
  323. {
  324. "text": "1 minute",
  325. "value": "PT1M"
  326. },
  327. {
  328. "text": "5 minutes",
  329. "value": "PT5M"
  330. },
  331. {
  332. "text": "15 minutes",
  333. "value": "PT15M"
  334. },
  335. {
  336. "text": "30 minutes",
  337. "value": "PT30M"
  338. },
  339. {
  340. "text": "1 hour",
  341. "value": "PT1H"
  342. },
  343. {
  344. "text": "6 hours",
  345. "value": "PT6H"
  346. },
  347. {
  348. "text": "12 hours",
  349. "value": "PT12H"
  350. },
  351. {
  352. "text": "1 day",
  353. "value": "P1D"
  354. }
  355. ],
  356. "top": "10"
  357. },
  358. "hide": false,
  359. "insightsAnalytics": {
  360. "query": "",
  361. "resultFormat": "time_series"
  362. },
  363. "queryType": "Azure Monitor",
  364. "refId": "C",
  365. "subscription": "f7152080-b4e8-47ee-9c85-7f1d0e6b72dc"
  366. }
  367. ],
  368. "title": "Availability, Requests and Latency",
  369. "type": "stat"
  370. },
  371. {
  372. "aliasColors": {},
  373. "bars": false,
  374. "dashLength": 10,
  375. "dashes": false,
  376. "datasource": "$ds",
  377. "fieldConfig": {
  378. "defaults": {
  379. "custom": {}
  380. },
  381. "overrides": []
  382. },
  383. "fill": 1,
  384. "fillGradient": 0,
  385. "gridPos": {
  386. "h": 8,
  387. "w": 6,
  388. "x": 0,
  389. "y": 8
  390. },
  391. "hiddenSeries": false,
  392. "id": 11,
  393. "legend": {
  394. "avg": false,
  395. "current": false,
  396. "max": false,
  397. "min": false,
  398. "show": true,
  399. "total": true,
  400. "values": true
  401. },
  402. "lines": true,
  403. "linewidth": 1,
  404. "nullPointMode": "null",
  405. "options": {
  406. "alertThreshold": true
  407. },
  408. "percentage": false,
  409. "pluginVersion": "7.4.3",
  410. "pointradius": 2,
  411. "points": false,
  412. "renderer": "flot",
  413. "seriesOverrides": [],
  414. "spaceLength": 10,
  415. "stack": false,
  416. "steppedLine": false,
  417. "targets": [
  418. {
  419. "appInsights": {
  420. "dimension": [],
  421. "metricName": "select",
  422. "timeGrain": "auto"
  423. },
  424. "azureLogAnalytics": {
  425. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  426. "resultFormat": "time_series",
  427. "workspace": "$ws"
  428. },
  429. "azureMonitor": {
  430. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  431. "aggregation": "Count",
  432. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  433. "dimensionFilter": "*",
  434. "dimensionFilters": [],
  435. "dimensions": [
  436. {
  437. "text": "Activity Type",
  438. "value": "ActivityType"
  439. },
  440. {
  441. "text": "Activity Name",
  442. "value": "ActivityName"
  443. }
  444. ],
  445. "metricDefinition": "Microsoft.KeyVault/vaults",
  446. "metricName": "ServiceApiHit",
  447. "metricNamespace": "Microsoft.KeyVault/vaults",
  448. "resourceGroup": "$rg",
  449. "resourceName": "$resource",
  450. "timeGrain": "auto",
  451. "timeGrains": [
  452. {
  453. "text": "auto",
  454. "value": "auto"
  455. },
  456. {
  457. "text": "1 minute",
  458. "value": "PT1M"
  459. },
  460. {
  461. "text": "5 minutes",
  462. "value": "PT5M"
  463. },
  464. {
  465. "text": "15 minutes",
  466. "value": "PT15M"
  467. },
  468. {
  469. "text": "30 minutes",
  470. "value": "PT30M"
  471. },
  472. {
  473. "text": "1 hour",
  474. "value": "PT1H"
  475. },
  476. {
  477. "text": "6 hours",
  478. "value": "PT6H"
  479. },
  480. {
  481. "text": "12 hours",
  482. "value": "PT12H"
  483. },
  484. {
  485. "text": "1 day",
  486. "value": "P1D"
  487. }
  488. ],
  489. "top": "10"
  490. },
  491. "insightsAnalytics": {
  492. "query": "",
  493. "resultFormat": "time_series"
  494. },
  495. "queryType": "Azure Monitor",
  496. "refId": "A",
  497. "subscription": "f7152080-b4e8-47ee-9c85-7f1d0e6b72dc"
  498. }
  499. ],
  500. "thresholds": [],
  501. "timeFrom": null,
  502. "timeRegions": [],
  503. "timeShift": null,
  504. "title": "Transactions Over Time",
  505. "tooltip": {
  506. "shared": true,
  507. "sort": 0,
  508. "value_type": "individual"
  509. },
  510. "type": "graph",
  511. "xaxis": {
  512. "buckets": null,
  513. "mode": "time",
  514. "name": null,
  515. "show": true,
  516. "values": []
  517. },
  518. "yaxes": [
  519. {
  520. "format": "short",
  521. "label": null,
  522. "logBase": 1,
  523. "max": null,
  524. "min": null,
  525. "show": true
  526. },
  527. {
  528. "format": "short",
  529. "label": null,
  530. "logBase": 1,
  531. "max": null,
  532. "min": null,
  533. "show": true
  534. }
  535. ],
  536. "yaxis": {
  537. "align": false,
  538. "alignLevel": null
  539. }
  540. },
  541. {
  542. "aliasColors": {},
  543. "bars": false,
  544. "dashLength": 10,
  545. "dashes": false,
  546. "datasource": "$ds",
  547. "fieldConfig": {
  548. "defaults": {
  549. "color": {},
  550. "custom": {},
  551. "thresholds": {
  552. "mode": "absolute",
  553. "steps": []
  554. },
  555. "unit": "ms"
  556. },
  557. "overrides": []
  558. },
  559. "fill": 0,
  560. "fillGradient": 0,
  561. "gridPos": {
  562. "h": 8,
  563. "w": 6,
  564. "x": 6,
  565. "y": 8
  566. },
  567. "hiddenSeries": false,
  568. "id": 13,
  569. "legend": {
  570. "avg": true,
  571. "current": false,
  572. "max": false,
  573. "min": false,
  574. "show": true,
  575. "total": false,
  576. "values": true
  577. },
  578. "lines": true,
  579. "linewidth": 1,
  580. "nullPointMode": "connected",
  581. "options": {
  582. "alertThreshold": true
  583. },
  584. "percentage": false,
  585. "pluginVersion": "7.4.3",
  586. "pointradius": 2,
  587. "points": false,
  588. "renderer": "flot",
  589. "seriesOverrides": [],
  590. "spaceLength": 10,
  591. "stack": false,
  592. "steppedLine": false,
  593. "targets": [
  594. {
  595. "appInsights": {
  596. "dimension": [],
  597. "metricName": "select",
  598. "timeGrain": "auto"
  599. },
  600. "azureLogAnalytics": {
  601. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  602. "resultFormat": "time_series",
  603. "workspace": "$ws"
  604. },
  605. "azureMonitor": {
  606. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  607. "aggregation": "Average",
  608. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  609. "dimensionFilter": "*",
  610. "dimensionFilters": [],
  611. "dimensions": [
  612. {
  613. "text": "Activity Type",
  614. "value": "ActivityType"
  615. },
  616. {
  617. "text": "Activity Name",
  618. "value": "ActivityName"
  619. },
  620. {
  621. "text": "Status Code",
  622. "value": "StatusCode"
  623. },
  624. {
  625. "text": "Status Code Class",
  626. "value": "StatusCodeClass"
  627. }
  628. ],
  629. "metricDefinition": "Microsoft.KeyVault/vaults",
  630. "metricName": "ServiceApiLatency",
  631. "metricNamespace": "Microsoft.KeyVault/vaults",
  632. "resourceGroup": "$rg",
  633. "resourceName": "$resource",
  634. "timeGrain": "auto",
  635. "timeGrains": [
  636. {
  637. "text": "auto",
  638. "value": "auto"
  639. },
  640. {
  641. "text": "1 minute",
  642. "value": "PT1M"
  643. },
  644. {
  645. "text": "5 minutes",
  646. "value": "PT5M"
  647. },
  648. {
  649. "text": "15 minutes",
  650. "value": "PT15M"
  651. },
  652. {
  653. "text": "30 minutes",
  654. "value": "PT30M"
  655. },
  656. {
  657. "text": "1 hour",
  658. "value": "PT1H"
  659. },
  660. {
  661. "text": "6 hours",
  662. "value": "PT6H"
  663. },
  664. {
  665. "text": "12 hours",
  666. "value": "PT12H"
  667. },
  668. {
  669. "text": "1 day",
  670. "value": "P1D"
  671. }
  672. ],
  673. "top": "10"
  674. },
  675. "insightsAnalytics": {
  676. "query": "",
  677. "resultFormat": "time_series"
  678. },
  679. "queryType": "Azure Monitor",
  680. "refId": "A",
  681. "subscription": "$sub"
  682. }
  683. ],
  684. "thresholds": [],
  685. "timeFrom": null,
  686. "timeRegions": [],
  687. "timeShift": null,
  688. "title": "Overall Latency",
  689. "tooltip": {
  690. "shared": true,
  691. "sort": 0,
  692. "value_type": "individual"
  693. },
  694. "type": "graph",
  695. "xaxis": {
  696. "buckets": null,
  697. "mode": "time",
  698. "name": null,
  699. "show": true,
  700. "values": []
  701. },
  702. "yaxes": [
  703. {
  704. "format": "ms",
  705. "label": null,
  706. "logBase": 1,
  707. "max": null,
  708. "min": null,
  709. "show": true
  710. },
  711. {
  712. "format": "short",
  713. "label": null,
  714. "logBase": 1,
  715. "max": null,
  716. "min": null,
  717. "show": true
  718. }
  719. ],
  720. "yaxis": {
  721. "align": false,
  722. "alignLevel": null
  723. }
  724. },
  725. {
  726. "aliasColors": {},
  727. "bars": false,
  728. "dashLength": 10,
  729. "dashes": false,
  730. "datasource": "$ds",
  731. "fieldConfig": {
  732. "defaults": {
  733. "custom": {}
  734. },
  735. "overrides": []
  736. },
  737. "fill": 1,
  738. "fillGradient": 0,
  739. "gridPos": {
  740. "h": 8,
  741. "w": 6,
  742. "x": 12,
  743. "y": 8
  744. },
  745. "hiddenSeries": false,
  746. "id": 15,
  747. "legend": {
  748. "avg": true,
  749. "current": false,
  750. "max": false,
  751. "min": false,
  752. "show": true,
  753. "total": false,
  754. "values": true
  755. },
  756. "lines": true,
  757. "linewidth": 1,
  758. "nullPointMode": "null",
  759. "options": {
  760. "alertThreshold": true
  761. },
  762. "percentage": false,
  763. "pluginVersion": "7.4.3",
  764. "pointradius": 2,
  765. "points": false,
  766. "renderer": "flot",
  767. "seriesOverrides": [],
  768. "spaceLength": 10,
  769. "stack": false,
  770. "steppedLine": false,
  771. "targets": [
  772. {
  773. "appInsights": {
  774. "dimension": [],
  775. "metricName": "select",
  776. "timeGrain": "auto"
  777. },
  778. "azureLogAnalytics": {
  779. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  780. "resultFormat": "time_series",
  781. "workspace": "$ws"
  782. },
  783. "azureMonitor": {
  784. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  785. "aggregation": "Average",
  786. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  787. "dimensionFilter": "*",
  788. "dimensionFilters": [],
  789. "dimensions": [
  790. {
  791. "text": "Activity Type",
  792. "value": "ActivityType"
  793. },
  794. {
  795. "text": "Activity Name",
  796. "value": "ActivityName"
  797. },
  798. {
  799. "text": "Status Code",
  800. "value": "StatusCode"
  801. },
  802. {
  803. "text": "Status Code Class",
  804. "value": "StatusCodeClass"
  805. }
  806. ],
  807. "metricDefinition": "Microsoft.KeyVault/vaults",
  808. "metricName": "Availability",
  809. "metricNamespace": "Microsoft.KeyVault/vaults",
  810. "resourceGroup": "$rg",
  811. "resourceName": "$resource",
  812. "timeGrain": "auto",
  813. "timeGrains": [
  814. {
  815. "text": "auto",
  816. "value": "auto"
  817. },
  818. {
  819. "text": "1 minute",
  820. "value": "PT1M"
  821. },
  822. {
  823. "text": "5 minutes",
  824. "value": "PT5M"
  825. },
  826. {
  827. "text": "15 minutes",
  828. "value": "PT15M"
  829. },
  830. {
  831. "text": "30 minutes",
  832. "value": "PT30M"
  833. },
  834. {
  835. "text": "1 hour",
  836. "value": "PT1H"
  837. },
  838. {
  839. "text": "6 hours",
  840. "value": "PT6H"
  841. },
  842. {
  843. "text": "12 hours",
  844. "value": "PT12H"
  845. },
  846. {
  847. "text": "1 day",
  848. "value": "P1D"
  849. }
  850. ],
  851. "top": "10"
  852. },
  853. "insightsAnalytics": {
  854. "query": "",
  855. "resultFormat": "time_series"
  856. },
  857. "queryType": "Azure Monitor",
  858. "refId": "A",
  859. "subscription": "$sub"
  860. }
  861. ],
  862. "thresholds": [],
  863. "timeFrom": null,
  864. "timeRegions": [],
  865. "timeShift": null,
  866. "title": "Availability",
  867. "tooltip": {
  868. "shared": true,
  869. "sort": 0,
  870. "value_type": "individual"
  871. },
  872. "type": "graph",
  873. "xaxis": {
  874. "buckets": null,
  875. "mode": "time",
  876. "name": null,
  877. "show": true,
  878. "values": []
  879. },
  880. "yaxes": [
  881. {
  882. "format": "percent",
  883. "label": null,
  884. "logBase": 1,
  885. "max": null,
  886. "min": null,
  887. "show": true
  888. },
  889. {
  890. "format": "short",
  891. "label": null,
  892. "logBase": 1,
  893. "max": null,
  894. "min": null,
  895. "show": true
  896. }
  897. ],
  898. "yaxis": {
  899. "align": false,
  900. "alignLevel": null
  901. }
  902. },
  903. {
  904. "aliasColors": {},
  905. "bars": false,
  906. "dashLength": 10,
  907. "dashes": false,
  908. "datasource": "$ds",
  909. "fieldConfig": {
  910. "defaults": {
  911. "custom": {}
  912. },
  913. "overrides": []
  914. },
  915. "fill": 1,
  916. "fillGradient": 0,
  917. "gridPos": {
  918. "h": 8,
  919. "w": 6,
  920. "x": 18,
  921. "y": 8
  922. },
  923. "hiddenSeries": false,
  924. "id": 17,
  925. "legend": {
  926. "avg": false,
  927. "current": false,
  928. "max": false,
  929. "min": false,
  930. "show": true,
  931. "total": true,
  932. "values": true
  933. },
  934. "lines": true,
  935. "linewidth": 1,
  936. "nullPointMode": "null",
  937. "options": {
  938. "alertThreshold": true
  939. },
  940. "percentage": false,
  941. "pluginVersion": "7.4.3",
  942. "pointradius": 2,
  943. "points": false,
  944. "renderer": "flot",
  945. "seriesOverrides": [],
  946. "spaceLength": 10,
  947. "stack": false,
  948. "steppedLine": false,
  949. "targets": [
  950. {
  951. "appInsights": {
  952. "dimension": [],
  953. "metricName": "select",
  954. "timeGrain": "auto"
  955. },
  956. "azureLogAnalytics": {
  957. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  958. "resultFormat": "time_series",
  959. "workspace": "$ws"
  960. },
  961. "azureMonitor": {
  962. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  963. "aggregation": "Count",
  964. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  965. "dimensionFilter": "*",
  966. "dimensionFilters": [],
  967. "dimensions": [
  968. {
  969. "text": "Activity Type",
  970. "value": "ActivityType"
  971. },
  972. {
  973. "text": "Activity Name",
  974. "value": "ActivityName"
  975. }
  976. ],
  977. "metricDefinition": "Microsoft.KeyVault/vaults",
  978. "metricName": "ServiceApiHit",
  979. "metricNamespace": "Microsoft.KeyVault/vaults",
  980. "resourceGroup": "$rg",
  981. "resourceName": "$resource",
  982. "timeGrain": "auto",
  983. "timeGrains": [
  984. {
  985. "text": "auto",
  986. "value": "auto"
  987. },
  988. {
  989. "text": "1 minute",
  990. "value": "PT1M"
  991. },
  992. {
  993. "text": "5 minutes",
  994. "value": "PT5M"
  995. },
  996. {
  997. "text": "15 minutes",
  998. "value": "PT15M"
  999. },
  1000. {
  1001. "text": "30 minutes",
  1002. "value": "PT30M"
  1003. },
  1004. {
  1005. "text": "1 hour",
  1006. "value": "PT1H"
  1007. },
  1008. {
  1009. "text": "6 hours",
  1010. "value": "PT6H"
  1011. },
  1012. {
  1013. "text": "12 hours",
  1014. "value": "PT12H"
  1015. },
  1016. {
  1017. "text": "1 day",
  1018. "value": "P1D"
  1019. }
  1020. ],
  1021. "top": "10"
  1022. },
  1023. "insightsAnalytics": {
  1024. "query": "",
  1025. "resultFormat": "time_series"
  1026. },
  1027. "queryType": "Azure Monitor",
  1028. "refId": "A",
  1029. "subscription": "$sub"
  1030. }
  1031. ],
  1032. "thresholds": [],
  1033. "timeFrom": null,
  1034. "timeRegions": [],
  1035. "timeShift": null,
  1036. "title": "Request Types over Time",
  1037. "tooltip": {
  1038. "shared": true,
  1039. "sort": 0,
  1040. "value_type": "individual"
  1041. },
  1042. "type": "graph",
  1043. "xaxis": {
  1044. "buckets": null,
  1045. "mode": "time",
  1046. "name": null,
  1047. "show": true,
  1048. "values": []
  1049. },
  1050. "yaxes": [
  1051. {
  1052. "format": "short",
  1053. "label": null,
  1054. "logBase": 1,
  1055. "max": null,
  1056. "min": null,
  1057. "show": true
  1058. },
  1059. {
  1060. "format": "short",
  1061. "label": null,
  1062. "logBase": 1,
  1063. "max": null,
  1064. "min": null,
  1065. "show": true
  1066. }
  1067. ],
  1068. "yaxis": {
  1069. "align": false,
  1070. "alignLevel": null
  1071. }
  1072. },
  1073. {
  1074. "collapsed": false,
  1075. "datasource": "$ds",
  1076. "gridPos": {
  1077. "h": 1,
  1078. "w": 24,
  1079. "x": 0,
  1080. "y": 16
  1081. },
  1082. "id": 23,
  1083. "panels": [],
  1084. "title": "Failures",
  1085. "type": "row"
  1086. },
  1087. {
  1088. "aliasColors": {},
  1089. "bars": false,
  1090. "dashLength": 10,
  1091. "dashes": false,
  1092. "datasource": "$ds",
  1093. "fieldConfig": {
  1094. "defaults": {
  1095. "custom": {}
  1096. },
  1097. "overrides": []
  1098. },
  1099. "fill": 1,
  1100. "fillGradient": 0,
  1101. "gridPos": {
  1102. "h": 8,
  1103. "w": 6,
  1104. "x": 0,
  1105. "y": 17
  1106. },
  1107. "hiddenSeries": false,
  1108. "id": 2,
  1109. "legend": {
  1110. "avg": false,
  1111. "current": false,
  1112. "max": false,
  1113. "min": false,
  1114. "show": true,
  1115. "total": true,
  1116. "values": true
  1117. },
  1118. "lines": true,
  1119. "linewidth": 1,
  1120. "nullPointMode": "null",
  1121. "options": {
  1122. "alertThreshold": true
  1123. },
  1124. "percentage": false,
  1125. "pluginVersion": "7.4.3",
  1126. "pointradius": 2,
  1127. "points": false,
  1128. "renderer": "flot",
  1129. "seriesOverrides": [],
  1130. "spaceLength": 10,
  1131. "stack": false,
  1132. "steppedLine": false,
  1133. "targets": [
  1134. {
  1135. "appInsights": {
  1136. "dimension": [],
  1137. "metricName": "select",
  1138. "timeGrain": "auto"
  1139. },
  1140. "azureLogAnalytics": {
  1141. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  1142. "resultFormat": "time_series",
  1143. "workspace": "$ws"
  1144. },
  1145. "azureMonitor": {
  1146. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  1147. "aggregation": "Count",
  1148. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  1149. "dimensionFilter": "*",
  1150. "dimensionFilters": [
  1151. {
  1152. "dimension": "StatusCodeClass",
  1153. "filter": "2xx",
  1154. "operator": "eq"
  1155. }
  1156. ],
  1157. "dimensions": [
  1158. {
  1159. "text": "Activity Type",
  1160. "value": "ActivityType"
  1161. },
  1162. {
  1163. "text": "Activity Name",
  1164. "value": "ActivityName"
  1165. },
  1166. {
  1167. "text": "Status Code",
  1168. "value": "StatusCode"
  1169. },
  1170. {
  1171. "text": "Status Code Class",
  1172. "value": "StatusCodeClass"
  1173. }
  1174. ],
  1175. "metricDefinition": "Microsoft.KeyVault/vaults",
  1176. "metricName": "ServiceApiResult",
  1177. "metricNamespace": "Microsoft.KeyVault/vaults",
  1178. "resourceGroup": "$rg",
  1179. "resourceName": "$resource",
  1180. "timeGrain": "auto",
  1181. "timeGrains": [
  1182. {
  1183. "text": "auto",
  1184. "value": "auto"
  1185. },
  1186. {
  1187. "text": "1 minute",
  1188. "value": "PT1M"
  1189. },
  1190. {
  1191. "text": "5 minutes",
  1192. "value": "PT5M"
  1193. },
  1194. {
  1195. "text": "15 minutes",
  1196. "value": "PT15M"
  1197. },
  1198. {
  1199. "text": "30 minutes",
  1200. "value": "PT30M"
  1201. },
  1202. {
  1203. "text": "1 hour",
  1204. "value": "PT1H"
  1205. },
  1206. {
  1207. "text": "6 hours",
  1208. "value": "PT6H"
  1209. },
  1210. {
  1211. "text": "12 hours",
  1212. "value": "PT12H"
  1213. },
  1214. {
  1215. "text": "1 day",
  1216. "value": "P1D"
  1217. }
  1218. ],
  1219. "top": ""
  1220. },
  1221. "insightsAnalytics": {
  1222. "query": "",
  1223. "resultFormat": "time_series"
  1224. },
  1225. "queryType": "Azure Monitor",
  1226. "refId": "A",
  1227. "subscription": "$sub"
  1228. }
  1229. ],
  1230. "thresholds": [],
  1231. "timeFrom": null,
  1232. "timeRegions": [],
  1233. "timeShift": null,
  1234. "title": "Successes (2xx)",
  1235. "tooltip": {
  1236. "shared": true,
  1237. "sort": 0,
  1238. "value_type": "individual"
  1239. },
  1240. "type": "graph",
  1241. "xaxis": {
  1242. "buckets": null,
  1243. "mode": "time",
  1244. "name": null,
  1245. "show": true,
  1246. "values": []
  1247. },
  1248. "yaxes": [
  1249. {
  1250. "format": "short",
  1251. "label": null,
  1252. "logBase": 1,
  1253. "max": null,
  1254. "min": null,
  1255. "show": true
  1256. },
  1257. {
  1258. "format": "short",
  1259. "label": null,
  1260. "logBase": 1,
  1261. "max": null,
  1262. "min": null,
  1263. "show": true
  1264. }
  1265. ],
  1266. "yaxis": {
  1267. "align": false,
  1268. "alignLevel": null
  1269. }
  1270. },
  1271. {
  1272. "aliasColors": {},
  1273. "bars": false,
  1274. "dashLength": 10,
  1275. "dashes": false,
  1276. "datasource": "$ds",
  1277. "fieldConfig": {
  1278. "defaults": {
  1279. "custom": {}
  1280. },
  1281. "overrides": []
  1282. },
  1283. "fill": 1,
  1284. "fillGradient": 0,
  1285. "gridPos": {
  1286. "h": 8,
  1287. "w": 6,
  1288. "x": 6,
  1289. "y": 17
  1290. },
  1291. "hiddenSeries": false,
  1292. "id": 7,
  1293. "legend": {
  1294. "avg": false,
  1295. "current": false,
  1296. "max": false,
  1297. "min": false,
  1298. "show": true,
  1299. "total": true,
  1300. "values": true
  1301. },
  1302. "lines": true,
  1303. "linewidth": 1,
  1304. "nullPointMode": "null",
  1305. "options": {
  1306. "alertThreshold": true
  1307. },
  1308. "percentage": false,
  1309. "pluginVersion": "7.4.3",
  1310. "pointradius": 2,
  1311. "points": false,
  1312. "renderer": "flot",
  1313. "seriesOverrides": [],
  1314. "spaceLength": 10,
  1315. "stack": false,
  1316. "steppedLine": false,
  1317. "targets": [
  1318. {
  1319. "appInsights": {
  1320. "dimension": [],
  1321. "metricName": "select",
  1322. "timeGrain": "auto"
  1323. },
  1324. "azureLogAnalytics": {
  1325. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  1326. "resultFormat": "time_series",
  1327. "workspace": "$ws"
  1328. },
  1329. "azureMonitor": {
  1330. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  1331. "aggregation": "Count",
  1332. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  1333. "dimensionFilter": "*",
  1334. "dimensionFilters": [
  1335. {
  1336. "dimension": "StatusCodeClass",
  1337. "filter": "4xx",
  1338. "operator": "eq"
  1339. }
  1340. ],
  1341. "dimensions": [
  1342. {
  1343. "text": "Activity Type",
  1344. "value": "ActivityType"
  1345. },
  1346. {
  1347. "text": "Activity Name",
  1348. "value": "ActivityName"
  1349. },
  1350. {
  1351. "text": "Status Code",
  1352. "value": "StatusCode"
  1353. },
  1354. {
  1355. "text": "Status Code Class",
  1356. "value": "StatusCodeClass"
  1357. }
  1358. ],
  1359. "metricDefinition": "Microsoft.KeyVault/vaults",
  1360. "metricName": "ServiceApiResult",
  1361. "metricNamespace": "Microsoft.KeyVault/vaults",
  1362. "resourceGroup": "$rg",
  1363. "resourceName": "$resource",
  1364. "timeGrain": "auto",
  1365. "timeGrains": [
  1366. {
  1367. "text": "auto",
  1368. "value": "auto"
  1369. },
  1370. {
  1371. "text": "1 minute",
  1372. "value": "PT1M"
  1373. },
  1374. {
  1375. "text": "5 minutes",
  1376. "value": "PT5M"
  1377. },
  1378. {
  1379. "text": "15 minutes",
  1380. "value": "PT15M"
  1381. },
  1382. {
  1383. "text": "30 minutes",
  1384. "value": "PT30M"
  1385. },
  1386. {
  1387. "text": "1 hour",
  1388. "value": "PT1H"
  1389. },
  1390. {
  1391. "text": "6 hours",
  1392. "value": "PT6H"
  1393. },
  1394. {
  1395. "text": "12 hours",
  1396. "value": "PT12H"
  1397. },
  1398. {
  1399. "text": "1 day",
  1400. "value": "P1D"
  1401. }
  1402. ],
  1403. "top": "10"
  1404. },
  1405. "insightsAnalytics": {
  1406. "query": "",
  1407. "resultFormat": "time_series"
  1408. },
  1409. "queryType": "Azure Monitor",
  1410. "refId": "A",
  1411. "subscription": "$sub"
  1412. }
  1413. ],
  1414. "thresholds": [],
  1415. "timeFrom": null,
  1416. "timeRegions": [],
  1417. "timeShift": null,
  1418. "title": "Failures (4xx)",
  1419. "tooltip": {
  1420. "shared": true,
  1421. "sort": 0,
  1422. "value_type": "individual"
  1423. },
  1424. "type": "graph",
  1425. "xaxis": {
  1426. "buckets": null,
  1427. "mode": "time",
  1428. "name": null,
  1429. "show": true,
  1430. "values": []
  1431. },
  1432. "yaxes": [
  1433. {
  1434. "format": "short",
  1435. "label": null,
  1436. "logBase": 1,
  1437. "max": null,
  1438. "min": null,
  1439. "show": true
  1440. },
  1441. {
  1442. "format": "short",
  1443. "label": null,
  1444. "logBase": 1,
  1445. "max": null,
  1446. "min": null,
  1447. "show": true
  1448. }
  1449. ],
  1450. "yaxis": {
  1451. "align": false,
  1452. "alignLevel": null
  1453. }
  1454. },
  1455. {
  1456. "aliasColors": {},
  1457. "bars": false,
  1458. "dashLength": 10,
  1459. "dashes": false,
  1460. "datasource": "$ds",
  1461. "fieldConfig": {
  1462. "defaults": {
  1463. "custom": {}
  1464. },
  1465. "overrides": []
  1466. },
  1467. "fill": 1,
  1468. "fillGradient": 0,
  1469. "gridPos": {
  1470. "h": 8,
  1471. "w": 6,
  1472. "x": 12,
  1473. "y": 17
  1474. },
  1475. "hiddenSeries": false,
  1476. "id": 6,
  1477. "legend": {
  1478. "avg": true,
  1479. "current": false,
  1480. "max": false,
  1481. "min": false,
  1482. "show": true,
  1483. "total": false,
  1484. "values": true
  1485. },
  1486. "lines": true,
  1487. "linewidth": 1,
  1488. "nullPointMode": "null",
  1489. "options": {
  1490. "alertThreshold": true
  1491. },
  1492. "percentage": false,
  1493. "pluginVersion": "7.4.3",
  1494. "pointradius": 2,
  1495. "points": false,
  1496. "renderer": "flot",
  1497. "seriesOverrides": [],
  1498. "spaceLength": 10,
  1499. "stack": false,
  1500. "steppedLine": false,
  1501. "targets": [
  1502. {
  1503. "appInsights": {
  1504. "dimension": [],
  1505. "metricName": "select",
  1506. "timeGrain": "auto"
  1507. },
  1508. "azureLogAnalytics": {
  1509. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  1510. "resultFormat": "time_series",
  1511. "workspace": "$ws"
  1512. },
  1513. "azureMonitor": {
  1514. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  1515. "aggregation": "Count",
  1516. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  1517. "dimensionFilter": "*",
  1518. "dimensionFilters": [
  1519. {
  1520. "dimension": "StatusCode",
  1521. "filter": "429",
  1522. "operator": "eq"
  1523. }
  1524. ],
  1525. "dimensions": [
  1526. {
  1527. "text": "Activity Type",
  1528. "value": "ActivityType"
  1529. },
  1530. {
  1531. "text": "Activity Name",
  1532. "value": "ActivityName"
  1533. },
  1534. {
  1535. "text": "Status Code",
  1536. "value": "StatusCode"
  1537. },
  1538. {
  1539. "text": "Status Code Class",
  1540. "value": "StatusCodeClass"
  1541. }
  1542. ],
  1543. "metricDefinition": "Microsoft.KeyVault/vaults",
  1544. "metricName": "ServiceApiResult",
  1545. "metricNamespace": "Microsoft.KeyVault/vaults",
  1546. "resourceGroup": "$rg",
  1547. "resourceName": "$resource",
  1548. "timeGrain": "auto",
  1549. "timeGrains": [
  1550. {
  1551. "text": "auto",
  1552. "value": "auto"
  1553. },
  1554. {
  1555. "text": "1 minute",
  1556. "value": "PT1M"
  1557. },
  1558. {
  1559. "text": "5 minutes",
  1560. "value": "PT5M"
  1561. },
  1562. {
  1563. "text": "15 minutes",
  1564. "value": "PT15M"
  1565. },
  1566. {
  1567. "text": "30 minutes",
  1568. "value": "PT30M"
  1569. },
  1570. {
  1571. "text": "1 hour",
  1572. "value": "PT1H"
  1573. },
  1574. {
  1575. "text": "6 hours",
  1576. "value": "PT6H"
  1577. },
  1578. {
  1579. "text": "12 hours",
  1580. "value": "PT12H"
  1581. },
  1582. {
  1583. "text": "1 day",
  1584. "value": "P1D"
  1585. }
  1586. ],
  1587. "top": "10"
  1588. },
  1589. "insightsAnalytics": {
  1590. "query": "",
  1591. "resultFormat": "time_series"
  1592. },
  1593. "queryType": "Azure Monitor",
  1594. "refId": "A",
  1595. "subscription": "$sub"
  1596. }
  1597. ],
  1598. "thresholds": [],
  1599. "timeFrom": null,
  1600. "timeRegions": [],
  1601. "timeShift": null,
  1602. "title": "Throttling (429)",
  1603. "tooltip": {
  1604. "shared": true,
  1605. "sort": 0,
  1606. "value_type": "individual"
  1607. },
  1608. "type": "graph",
  1609. "xaxis": {
  1610. "buckets": null,
  1611. "mode": "time",
  1612. "name": null,
  1613. "show": true,
  1614. "values": []
  1615. },
  1616. "yaxes": [
  1617. {
  1618. "format": "short",
  1619. "label": null,
  1620. "logBase": 1,
  1621. "max": null,
  1622. "min": null,
  1623. "show": true
  1624. },
  1625. {
  1626. "format": "short",
  1627. "label": null,
  1628. "logBase": 1,
  1629. "max": null,
  1630. "min": null,
  1631. "show": true
  1632. }
  1633. ],
  1634. "yaxis": {
  1635. "align": false,
  1636. "alignLevel": null
  1637. }
  1638. },
  1639. {
  1640. "aliasColors": {},
  1641. "bars": false,
  1642. "dashLength": 10,
  1643. "dashes": false,
  1644. "datasource": "$ds",
  1645. "fieldConfig": {
  1646. "defaults": {
  1647. "custom": {}
  1648. },
  1649. "overrides": []
  1650. },
  1651. "fill": 1,
  1652. "fillGradient": 0,
  1653. "gridPos": {
  1654. "h": 8,
  1655. "w": 6,
  1656. "x": 18,
  1657. "y": 17
  1658. },
  1659. "hiddenSeries": false,
  1660. "id": 4,
  1661. "legend": {
  1662. "avg": false,
  1663. "current": false,
  1664. "max": false,
  1665. "min": false,
  1666. "show": true,
  1667. "total": true,
  1668. "values": true
  1669. },
  1670. "lines": true,
  1671. "linewidth": 1,
  1672. "nullPointMode": "null",
  1673. "options": {
  1674. "alertThreshold": true
  1675. },
  1676. "percentage": false,
  1677. "pluginVersion": "7.4.3",
  1678. "pointradius": 2,
  1679. "points": false,
  1680. "renderer": "flot",
  1681. "seriesOverrides": [],
  1682. "spaceLength": 10,
  1683. "stack": false,
  1684. "steppedLine": false,
  1685. "targets": [
  1686. {
  1687. "appInsights": {
  1688. "dimension": [],
  1689. "metricName": "select",
  1690. "timeGrain": "auto"
  1691. },
  1692. "azureLogAnalytics": {
  1693. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  1694. "resultFormat": "time_series",
  1695. "workspace": "$ws"
  1696. },
  1697. "azureMonitor": {
  1698. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  1699. "aggregation": "Count",
  1700. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  1701. "dimensionFilter": "*",
  1702. "dimensionFilters": [
  1703. {
  1704. "dimension": "StatusCode",
  1705. "filter": "401",
  1706. "operator": "eq"
  1707. }
  1708. ],
  1709. "dimensions": [
  1710. {
  1711. "text": "Activity Type",
  1712. "value": "ActivityType"
  1713. },
  1714. {
  1715. "text": "Activity Name",
  1716. "value": "ActivityName"
  1717. },
  1718. {
  1719. "text": "Status Code",
  1720. "value": "StatusCode"
  1721. },
  1722. {
  1723. "text": "Status Code Class",
  1724. "value": "StatusCodeClass"
  1725. }
  1726. ],
  1727. "metricDefinition": "Microsoft.KeyVault/vaults",
  1728. "metricName": "ServiceApiResult",
  1729. "metricNamespace": "Microsoft.KeyVault/vaults",
  1730. "resourceGroup": "$rg",
  1731. "resourceName": "$resource",
  1732. "timeGrain": "auto",
  1733. "timeGrains": [
  1734. {
  1735. "text": "auto",
  1736. "value": "auto"
  1737. },
  1738. {
  1739. "text": "1 minute",
  1740. "value": "PT1M"
  1741. },
  1742. {
  1743. "text": "5 minutes",
  1744. "value": "PT5M"
  1745. },
  1746. {
  1747. "text": "15 minutes",
  1748. "value": "PT15M"
  1749. },
  1750. {
  1751. "text": "30 minutes",
  1752. "value": "PT30M"
  1753. },
  1754. {
  1755. "text": "1 hour",
  1756. "value": "PT1H"
  1757. },
  1758. {
  1759. "text": "6 hours",
  1760. "value": "PT6H"
  1761. },
  1762. {
  1763. "text": "12 hours",
  1764. "value": "PT12H"
  1765. },
  1766. {
  1767. "text": "1 day",
  1768. "value": "P1D"
  1769. }
  1770. ],
  1771. "top": "10"
  1772. },
  1773. "insightsAnalytics": {
  1774. "query": "",
  1775. "resultFormat": "time_series"
  1776. },
  1777. "queryType": "Azure Monitor",
  1778. "refId": "A",
  1779. "subscription": "$sub"
  1780. },
  1781. {
  1782. "appInsights": {
  1783. "dimension": [],
  1784. "metricName": "select",
  1785. "timeGrain": "auto"
  1786. },
  1787. "azureLogAnalytics": {
  1788. "query": "//change this example to create your own time series query\n<table name> //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by <group by column>, bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc",
  1789. "resultFormat": "time_series",
  1790. "workspace": "$ws"
  1791. },
  1792. "azureMonitor": {
  1793. "aggOptions": ["None", "Average", "Minimum", "Maximum", "Total", "Count"],
  1794. "aggregation": "Count",
  1795. "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000],
  1796. "dimensionFilter": "*",
  1797. "dimensionFilters": [
  1798. {
  1799. "dimension": "StatusCode",
  1800. "filter": "403",
  1801. "operator": "eq"
  1802. }
  1803. ],
  1804. "dimensions": [
  1805. {
  1806. "text": "Activity Type",
  1807. "value": "ActivityType"
  1808. },
  1809. {
  1810. "text": "Activity Name",
  1811. "value": "ActivityName"
  1812. },
  1813. {
  1814. "text": "Status Code",
  1815. "value": "StatusCode"
  1816. },
  1817. {
  1818. "text": "Status Code Class",
  1819. "value": "StatusCodeClass"
  1820. }
  1821. ],
  1822. "metricDefinition": "Microsoft.KeyVault/vaults",
  1823. "metricName": "ServiceApiResult",
  1824. "metricNamespace": "Microsoft.KeyVault/vaults",
  1825. "resourceGroup": "$rg",
  1826. "resourceName": "$resource",
  1827. "timeGrain": "auto",
  1828. "timeGrains": [
  1829. {
  1830. "text": "auto",
  1831. "value": "auto"
  1832. },
  1833. {
  1834. "text": "1 minute",
  1835. "value": "PT1M"
  1836. },
  1837. {
  1838. "text": "5 minutes",
  1839. "value": "PT5M"
  1840. },
  1841. {
  1842. "text": "15 minutes",
  1843. "value": "PT15M"
  1844. },
  1845. {
  1846. "text": "30 minutes",
  1847. "value": "PT30M"
  1848. },
  1849. {
  1850. "text": "1 hour",
  1851. "value": "PT1H"
  1852. },
  1853. {
  1854. "text": "6 hours",
  1855. "value": "PT6H"
  1856. },
  1857. {
  1858. "text": "12 hours",
  1859. "value": "PT12H"
  1860. },
  1861. {
  1862. "text": "1 day",
  1863. "value": "P1D"
  1864. }
  1865. ],
  1866. "top": "10"
  1867. },
  1868. "hide": false,
  1869. "insightsAnalytics": {
  1870. "query": "",
  1871. "resultFormat": "time_series"
  1872. },
  1873. "queryType": "Azure Monitor",
  1874. "refId": "B",
  1875. "subscription": "$sub"
  1876. }
  1877. ],
  1878. "thresholds": [],
  1879. "timeFrom": null,
  1880. "timeRegions": [],
  1881. "timeShift": null,
  1882. "title": "Authentication Errors (401 & 403)",
  1883. "tooltip": {
  1884. "shared": true,
  1885. "sort": 0,
  1886. "value_type": "individual"
  1887. },
  1888. "type": "graph",
  1889. "xaxis": {
  1890. "buckets": null,
  1891. "mode": "time",
  1892. "name": null,
  1893. "show": true,
  1894. "values": []
  1895. },
  1896. "yaxes": [
  1897. {
  1898. "format": "short",
  1899. "label": null,
  1900. "logBase": 1,
  1901. "max": null,
  1902. "min": null,
  1903. "show": true
  1904. },
  1905. {
  1906. "format": "short",
  1907. "label": null,
  1908. "logBase": 1,
  1909. "max": null,
  1910. "min": null,
  1911. "show": true
  1912. }
  1913. ],
  1914. "yaxis": {
  1915. "align": false,
  1916. "alignLevel": null
  1917. }
  1918. },
  1919. {
  1920. "collapsed": false,
  1921. "datasource": "$ds",
  1922. "gridPos": {
  1923. "h": 1,
  1924. "w": 24,
  1925. "x": 0,
  1926. "y": 25
  1927. },
  1928. "id": 21,
  1929. "panels": [],
  1930. "title": "Operations",
  1931. "type": "row"
  1932. },
  1933. {
  1934. "datasource": "$ds",
  1935. "fieldConfig": {
  1936. "defaults": {
  1937. "color": {
  1938. "mode": "thresholds"
  1939. },
  1940. "custom": {},
  1941. "mappings": [],
  1942. "thresholds": {
  1943. "mode": "absolute",
  1944. "steps": []
  1945. }
  1946. },
  1947. "overrides": []
  1948. },
  1949. "gridPos": {
  1950. "h": 5,
  1951. "w": 3,
  1952. "x": 0,
  1953. "y": 26
  1954. },
  1955. "id": 19,
  1956. "options": {
  1957. "colorMode": "value",
  1958. "graphMode": "area",
  1959. "justifyMode": "auto",
  1960. "orientation": "auto",
  1961. "reduceOptions": {
  1962. "calcs": ["lastNotNull"],
  1963. "fields": "",
  1964. "values": false
  1965. },
  1966. "text": {},
  1967. "textMode": "auto"
  1968. },
  1969. "pluginVersion": "7.4.3",
  1970. "targets": [
  1971. {
  1972. "appInsights": {
  1973. "dimension": [],
  1974. "metricName": "select",
  1975. "timeGrain": "auto"
  1976. },
  1977. "azureLogAnalytics": {
  1978. "query": "let rawData = AzureDiagnostics \r\n // Ignore Authentication operations with a 401. This is normal when using Key Vault SDK, first an unauthenticated request is done then the response is used for authentication.\r\n | where Category == \"AuditEvent\" and not (OperationName == \"Authentication\" and httpStatusCode_d == 401)\r\n | where OperationName in ('SecretGet', 'VaultGet') or '*' in ('SecretGet', 'VaultGet')\r\n // Create ResultStatus with all the 'success' results bucked as 'Success'\r\n // Certain operations like StorageAccountAutoSyncKey have no ResultSignature, for now set to 'Success' as well\r\n | extend ResultStatus = case (ResultSignature == \"\", \"Success\",\r\n ResultSignature == \"OK\", \"Success\",\r\n ResultSignature == \"Accepted\", \"Success\",\r\n ResultSignature); \r\nrawData \r\n| make-series Trend = count() default = 0 on TimeGenerated from ago(1d) to now() step 30m by ResultStatus\r\n| join kind = inner (rawData\n | where $__timeFilter(TimeGenerated)\r\n | summarize Count = count() by ResultStatus\r\n )\r\n on ResultStatus\n \r\n\r\n| project ResultStatus, Count, Trend\r\n| order by Count desc;\r",
  1979. "resultFormat": "table",
  1980. "workspace": "$ws"
  1981. },
  1982. "azureMonitor": {
  1983. "aggOptions": [],
  1984. "dimensionFilter": "*",
  1985. "dimensionFilters": [],
  1986. "metricDefinition": "select",
  1987. "metricName": "select",
  1988. "metricNamespace": "select",
  1989. "resourceGroup": "select",
  1990. "resourceName": "select",
  1991. "timeGrain": "auto",
  1992. "timeGrains": [],
  1993. "top": "10"
  1994. },
  1995. "insightsAnalytics": {
  1996. "query": "",
  1997. "resultFormat": "time_series"
  1998. },
  1999. "queryType": "Azure Log Analytics",
  2000. "refId": "A",
  2001. "subscription": "$sub"
  2002. }
  2003. ],
  2004. "timeFrom": null,
  2005. "timeShift": null,
  2006. "title": "Success Operations",
  2007. "type": "stat"
  2008. },
  2009. {
  2010. "aliasColors": {},
  2011. "bars": false,
  2012. "dashLength": 10,
  2013. "dashes": false,
  2014. "datasource": "$ds",
  2015. "fieldConfig": {
  2016. "defaults": {
  2017. "color": {},
  2018. "custom": {},
  2019. "thresholds": {
  2020. "mode": "absolute",
  2021. "steps": []
  2022. },
  2023. "unit": "short"
  2024. },
  2025. "overrides": []
  2026. },
  2027. "fill": 1,
  2028. "fillGradient": 0,
  2029. "gridPos": {
  2030. "h": 5,
  2031. "w": 7,
  2032. "x": 3,
  2033. "y": 26
  2034. },
  2035. "hiddenSeries": false,
  2036. "id": 35,
  2037. "legend": {
  2038. "avg": false,
  2039. "current": false,
  2040. "max": false,
  2041. "min": false,
  2042. "show": true,
  2043. "total": false,
  2044. "values": false
  2045. },
  2046. "lines": false,
  2047. "linewidth": 1,
  2048. "nullPointMode": "null",
  2049. "options": {
  2050. "alertThreshold": true
  2051. },
  2052. "percentage": false,
  2053. "pluginVersion": "7.4.3",
  2054. "pointradius": 2,
  2055. "points": true,
  2056. "renderer": "flot",
  2057. "seriesOverrides": [],
  2058. "spaceLength": 10,
  2059. "stack": false,
  2060. "steppedLine": false,
  2061. "targets": [
  2062. {
  2063. "appInsights": {
  2064. "dimension": [],
  2065. "metricName": "select",
  2066. "timeGrain": "auto"
  2067. },
  2068. "azureLogAnalytics": {
  2069. "query": "let rawData = AzureDiagnostics \r\n // Ignore Authentication operations with a 401. This is normal when using Key Vault SDK, first an unauthenticated request is done then the response is used for authentication.\r\n | where Category == \"AuditEvent\" and not (OperationName == \"Authentication\" and httpStatusCode_d == 401)\r\n | where OperationName in ('SecretGet', 'VaultGet') or '*' in ('SecretGet', 'VaultGet')\r\n // Create ResultStatus with all the 'success' results bucked as 'Success'\r\n // Certain operations like StorageAccountAutoSyncKey have no ResultSignature, for now set to 'Success' as well\r\n | extend ResultStatus = case (ResultSignature == \"\", \"Success\",\r\n ResultSignature == \"OK\", \"Success\",\r\n ResultSignature == \"Accepted\", \"Success\",\r\n ResultSignature); \r\nrawData\n| where $__timeFilter(TimeGenerated)\n| extend resultCount = iif(ResultStatus == \"Success\", 1, 0)\n| summarize count(resultCount) by bin(TimeGenerated, 30m)\n| sort by TimeGenerated;\n\r\r\n\r",
  2070. "resultFormat": "table",
  2071. "workspace": "$ws"
  2072. },
  2073. "azureMonitor": {
  2074. "aggOptions": [],
  2075. "dimensionFilter": "*",
  2076. "dimensionFilters": [],
  2077. "metricDefinition": "select",
  2078. "metricName": "select",
  2079. "metricNamespace": "select",
  2080. "resourceGroup": "select",
  2081. "resourceName": "select",
  2082. "timeGrain": "auto",
  2083. "timeGrains": [],
  2084. "top": "10"
  2085. },
  2086. "insightsAnalytics": {
  2087. "query": "",
  2088. "resultFormat": "time_series"
  2089. },
  2090. "queryType": "Azure Log Analytics",
  2091. "refId": "A",
  2092. "subscription": "$sub"
  2093. }
  2094. ],
  2095. "thresholds": [],
  2096. "timeFrom": null,
  2097. "timeRegions": [],
  2098. "timeShift": null,
  2099. "title": "Success Operations Counts",
  2100. "tooltip": {
  2101. "shared": true,
  2102. "sort": 0,
  2103. "value_type": "individual"
  2104. },
  2105. "type": "graph",
  2106. "xaxis": {
  2107. "buckets": null,
  2108. "mode": "time",
  2109. "name": null,
  2110. "show": true,
  2111. "values": []
  2112. },
  2113. "yaxes": [
  2114. {
  2115. "format": "short",
  2116. "label": null,
  2117. "logBase": 1,
  2118. "max": null,
  2119. "min": "0",
  2120. "show": true
  2121. },
  2122. {
  2123. "format": "short",
  2124. "label": null,
  2125. "logBase": 1,
  2126. "max": null,
  2127. "min": null,
  2128. "show": true
  2129. }
  2130. ],
  2131. "yaxis": {
  2132. "align": false,
  2133. "alignLevel": null
  2134. }
  2135. },
  2136. {
  2137. "datasource": "$ds",
  2138. "fieldConfig": {
  2139. "defaults": {
  2140. "color": {
  2141. "mode": "thresholds"
  2142. },
  2143. "custom": {},
  2144. "mappings": [],
  2145. "thresholds": {
  2146. "mode": "absolute",
  2147. "steps": []
  2148. }
  2149. },
  2150. "overrides": []
  2151. },
  2152. "gridPos": {
  2153. "h": 5,
  2154. "w": 3,
  2155. "x": 10,
  2156. "y": 26
  2157. },
  2158. "id": 26,
  2159. "options": {
  2160. "colorMode": "value",
  2161. "graphMode": "area",
  2162. "justifyMode": "center",
  2163. "orientation": "auto",
  2164. "reduceOptions": {
  2165. "calcs": ["changeCount"],
  2166. "fields": "",
  2167. "values": true
  2168. },
  2169. "text": {},
  2170. "textMode": "value"
  2171. },
  2172. "pluginVersion": "7.4.3",
  2173. "targets": [
  2174. {
  2175. "appInsights": {
  2176. "dimension": [],
  2177. "metricName": "select",
  2178. "timeGrain": "auto"
  2179. },
  2180. "azureLogAnalytics": {
  2181. "query": "let rawData = AzureDiagnostics \r\n // Ignore Authentication operations with a 401. This is normal when using Key Vault SDK, first an unauthenticated request is done then the response is used for authentication.\r\n | where Category == \"AuditEvent\" and not (OperationName == \"Authentication\" and httpStatusCode_d == 401)\r\n | where OperationName in ('SecretGet', 'VaultGet') or '*' in ('SecretGet', 'VaultGet')\r; \r\nrawData \r\n| make-series Trend = count() default = 0 on TimeGenerated from ago(1d) to now() step 30m by ResultSignature \n| join kind = inner (rawData\n | where $__timeFilter(TimeGenerated)\r\n | summarize Count = count() by ResultSignature \n )\r\n on ResultSignature \n\r\n\r\n| project ResultSignature , Count, Trend\r\n| order by Count desc;",
  2182. "resultFormat": "table",
  2183. "workspace": "$ws"
  2184. },
  2185. "azureMonitor": {
  2186. "aggOptions": [],
  2187. "dimensionFilter": "*",
  2188. "dimensionFilters": [],
  2189. "metricDefinition": "select",
  2190. "metricName": "select",
  2191. "metricNamespace": "select",
  2192. "resourceGroup": "select",
  2193. "resourceName": "select",
  2194. "timeGrain": "auto",
  2195. "timeGrains": [],
  2196. "top": "10"
  2197. },
  2198. "insightsAnalytics": {
  2199. "query": "",
  2200. "resultFormat": "time_series"
  2201. },
  2202. "queryType": "Azure Log Analytics",
  2203. "refId": "A",
  2204. "subscription": "$sub"
  2205. }
  2206. ],
  2207. "timeFrom": null,
  2208. "timeShift": null,
  2209. "title": "All Operations",
  2210. "type": "stat"
  2211. },
  2212. {
  2213. "aliasColors": {},
  2214. "bars": false,
  2215. "dashLength": 10,
  2216. "dashes": false,
  2217. "datasource": "$ds",
  2218. "fieldConfig": {
  2219. "defaults": {
  2220. "color": {},
  2221. "custom": {},
  2222. "thresholds": {
  2223. "mode": "absolute",
  2224. "steps": []
  2225. },
  2226. "unit": "short"
  2227. },
  2228. "overrides": []
  2229. },
  2230. "fill": 1,
  2231. "fillGradient": 0,
  2232. "gridPos": {
  2233. "h": 5,
  2234. "w": 7,
  2235. "x": 13,
  2236. "y": 26
  2237. },
  2238. "hiddenSeries": false,
  2239. "id": 36,
  2240. "legend": {
  2241. "avg": false,
  2242. "current": false,
  2243. "max": false,
  2244. "min": false,
  2245. "show": true,
  2246. "total": false,
  2247. "values": false
  2248. },
  2249. "lines": false,
  2250. "linewidth": 1,
  2251. "nullPointMode": "null",
  2252. "options": {
  2253. "alertThreshold": true
  2254. },
  2255. "percentage": false,
  2256. "pluginVersion": "7.4.3",
  2257. "pointradius": 2,
  2258. "points": true,
  2259. "renderer": "flot",
  2260. "seriesOverrides": [],
  2261. "spaceLength": 10,
  2262. "stack": false,
  2263. "steppedLine": false,
  2264. "targets": [
  2265. {
  2266. "appInsights": {
  2267. "dimension": [],
  2268. "metricName": "select",
  2269. "timeGrain": "auto"
  2270. },
  2271. "azureLogAnalytics": {
  2272. "query": "let rawData = AzureDiagnostics \r\n // Ignore Authentication operations with a 401. This is normal when using Key Vault SDK, first an unauthenticated request is done then the response is used for authentication.\r\n | where Category == \"AuditEvent\" and not (OperationName == \"Authentication\" and httpStatusCode_d == 401)\r\n | where OperationName in ('SecretGet', 'VaultGet') or '*' in ('SecretGet', 'VaultGet')\r; \r\nrawData\n| where $__timeFilter(TimeGenerated)\n| summarize count(ResultSignature ) by bin(TimeGenerated, 30m)\n| sort by TimeGenerated;\n\r\r\n\r",
  2273. "resultFormat": "table",
  2274. "workspace": "$ws"
  2275. },
  2276. "azureMonitor": {
  2277. "aggOptions": [],
  2278. "dimensionFilter": "*",
  2279. "dimensionFilters": [],
  2280. "metricDefinition": "select",
  2281. "metricName": "select",
  2282. "metricNamespace": "select",
  2283. "resourceGroup": "select",
  2284. "resourceName": "select",
  2285. "timeGrain": "auto",
  2286. "timeGrains": [],
  2287. "top": "10"
  2288. },
  2289. "insightsAnalytics": {
  2290. "query": "",
  2291. "resultFormat": "time_series"
  2292. },
  2293. "queryType": "Azure Log Analytics",
  2294. "refId": "A",
  2295. "subscription": "$sub"
  2296. }
  2297. ],
  2298. "thresholds": [],
  2299. "timeFrom": null,
  2300. "timeRegions": [],
  2301. "timeShift": null,
  2302. "title": "All Operations Counts",
  2303. "tooltip": {
  2304. "shared": true,
  2305. "sort": 0,
  2306. "value_type": "individual"
  2307. },
  2308. "type": "graph",
  2309. "xaxis": {
  2310. "buckets": null,
  2311. "mode": "time",
  2312. "name": null,
  2313. "show": true,
  2314. "values": []
  2315. },
  2316. "yaxes": [
  2317. {
  2318. "format": "short",
  2319. "label": null,
  2320. "logBase": 1,
  2321. "max": null,
  2322. "min": "0",
  2323. "show": true
  2324. },
  2325. {
  2326. "format": "short",
  2327. "label": null,
  2328. "logBase": 1,
  2329. "max": null,
  2330. "min": null,
  2331. "show": true
  2332. }
  2333. ],
  2334. "yaxis": {
  2335. "align": false,
  2336. "alignLevel": null
  2337. }
  2338. },
  2339. {
  2340. "datasource": "$ds",
  2341. "fieldConfig": {
  2342. "defaults": {
  2343. "color": {
  2344. "mode": "thresholds"
  2345. },
  2346. "custom": {
  2347. "align": null,
  2348. "filterable": false
  2349. },
  2350. "mappings": [],
  2351. "thresholds": {
  2352. "mode": "absolute",
  2353. "steps": [
  2354. {
  2355. "color": "green",
  2356. "value": null
  2357. },
  2358. {
  2359. "color": "red",
  2360. "value": 80
  2361. }
  2362. ]
  2363. }
  2364. },
  2365. "overrides": []
  2366. },
  2367. "gridPos": {
  2368. "h": 4,
  2369. "w": 24,
  2370. "x": 0,
  2371. "y": 31
  2372. },
  2373. "id": 28,
  2374. "options": {
  2375. "showHeader": true
  2376. },
  2377. "pluginVersion": "7.4.3",
  2378. "targets": [
  2379. {
  2380. "appInsights": {
  2381. "dimension": [],
  2382. "metricName": "select",
  2383. "timeGrain": "auto"
  2384. },
  2385. "azureLogAnalytics": {
  2386. "query": "let data = AzureDiagnostics \r\n | where TimeGenerated > ago(1d)\r\n // Ignore Authentication operations with a 401. This is normal when using Key Vault SDK, first an unauthenticated request is done then the response is used for authentication.\r\n | where Category == \"AuditEvent\" and not (OperationName == \"Authentication\" and httpStatusCode_d == 401)\r\n | where OperationName in ('SecretGet', 'VaultGet') or '*' in ('SecretGet', 'VaultGet')\r\n // Create ResultStatus with all the 'success' results bucked as 'Success'\r\n // Certain operations like StorageAccountAutoSyncKey have no ResultSignature, for now set to 'Success' as well\r\n | extend ResultStatus = case (ResultSignature == \"\", \"Success\",\r\n ResultSignature == \"OK\", \"Success\",\r\n ResultSignature == \"Accepted\", \"Success\",\r\n ResultSignature)\r\n | where ResultStatus == 'All' or 'All' == 'All';\r\ndata\r\n// Data aggregated to the OperationName\r\n| summarize OperationCount = count(), SuccessCount = countif(ResultStatus == \"Success\"), FailureCount = countif(ResultStatus != \"Success\"), PDurationMs = percentile(DurationMs, 99) by Resource, OperationName\r\n| join kind=inner (data\r\n | make-series Trend = count() default = 0 on TimeGenerated from ago(1d) to now() step 30m by OperationName\r\n | project-away TimeGenerated)\r\n on OperationName\r\n| order by OperationCount desc\r\n| project Name = strcat('⚡ ', OperationName), Id = strcat(Resource, '/', OperationName), ['Operation count'] = OperationCount, ['Operation count trend'] = Trend, ['Success count'] = SuccessCount, ['Failure count'] = FailureCount, ['p99 Duration'] = PDurationMs",
  2387. "resultFormat": "time_series",
  2388. "workspace": "$ws"
  2389. },
  2390. "azureMonitor": {
  2391. "aggOptions": [],
  2392. "dimensionFilter": "*",
  2393. "dimensionFilters": [],
  2394. "metricDefinition": "select",
  2395. "metricName": "select",
  2396. "metricNamespace": "select",
  2397. "resourceGroup": "select",
  2398. "resourceName": "select",
  2399. "timeGrain": "auto",
  2400. "timeGrains": [],
  2401. "top": "10"
  2402. },
  2403. "insightsAnalytics": {
  2404. "query": "",
  2405. "resultFormat": "time_series"
  2406. },
  2407. "queryType": "Azure Log Analytics",
  2408. "refId": "A",
  2409. "subscription": "$sub"
  2410. }
  2411. ],
  2412. "title": "Operations by Name",
  2413. "type": "table"
  2414. },
  2415. {
  2416. "datasource": "$ds",
  2417. "fieldConfig": {
  2418. "defaults": {
  2419. "color": {
  2420. "mode": "thresholds"
  2421. },
  2422. "custom": {
  2423. "align": null,
  2424. "filterable": false
  2425. },
  2426. "mappings": [],
  2427. "thresholds": {
  2428. "mode": "absolute",
  2429. "steps": [
  2430. {
  2431. "color": "green",
  2432. "value": null
  2433. },
  2434. {
  2435. "color": "red",
  2436. "value": 80
  2437. }
  2438. ]
  2439. }
  2440. },
  2441. "overrides": [
  2442. {
  2443. "matcher": {
  2444. "id": "byName",
  2445. "options": "Duration"
  2446. },
  2447. "properties": [
  2448. {
  2449. "id": "custom.width",
  2450. "value": 86
  2451. }
  2452. ]
  2453. },
  2454. {
  2455. "matcher": {
  2456. "id": "byName",
  2457. "options": "Result"
  2458. },
  2459. "properties": [
  2460. {
  2461. "id": "custom.width",
  2462. "value": 94
  2463. }
  2464. ]
  2465. },
  2466. {
  2467. "matcher": {
  2468. "id": "byName",
  2469. "options": "Operation"
  2470. },
  2471. "properties": [
  2472. {
  2473. "id": "custom.width",
  2474. "value": 136
  2475. }
  2476. ]
  2477. },
  2478. {
  2479. "matcher": {
  2480. "id": "byName",
  2481. "options": "Time"
  2482. },
  2483. "properties": [
  2484. {
  2485. "id": "custom.width",
  2486. "value": 219
  2487. }
  2488. ]
  2489. }
  2490. ]
  2491. },
  2492. "gridPos": {
  2493. "h": 8,
  2494. "w": 24,
  2495. "x": 0,
  2496. "y": 35
  2497. },
  2498. "id": 30,
  2499. "options": {
  2500. "showHeader": true,
  2501. "sortBy": []
  2502. },
  2503. "pluginVersion": "7.4.3",
  2504. "targets": [
  2505. {
  2506. "appInsights": {
  2507. "dimension": [],
  2508. "metricName": "select",
  2509. "timeGrain": "auto"
  2510. },
  2511. "azureLogAnalytics": {
  2512. "query": "let gridRowSelected = dynamic({\"Id\": \"*\"});\r\nlet resourceName = split(gridRowSelected.Id, \"/\")[0];\r\nlet operationName = split(gridRowSelected.Id, \"/\")[1];\r\nAzureDiagnostics \r\n| where TimeGenerated > ago(1d)\r\n// Ignore Authentication operations with a 401. This is normal when using Key Vault SDK, first an unauthenticated request is done then the response is used for authentication.\r\n| where Category == \"AuditEvent\" and not (OperationName == \"Authentication\" and httpStatusCode_d == 401)\r\n| where OperationName in ('SecretGet', 'VaultGet') or '*' in ('SecretGet', 'VaultGet')\r\n| where resourceName == \"*\" or Resource == resourceName\r\n| where operationName == \"\" or OperationName == operationName\r\n// Create ResultStatus with all the 'success' results bucked as 'Success'\r\n// Certain operations like StorageAccountAutoSyncKey have no ResultSignature, for now set to 'Success' as well\r\n| extend ResultStatus = case (ResultSignature == \"\", \"Success\",\r\n ResultSignature == \"OK\", \"Success\",\r\n ResultSignature == \"Accepted\", \"Success\",\r\n ResultSignature)\r\n| where ResultStatus == 'All' or 'All' == 'All'\r\n| extend p = pack_all()\r\n| mv-apply p on \r\n ( \r\n extend key = tostring(bag_keys(p)[0])\r\n | where isnotempty(p[key]) and isnotnull(p[key])\r\n | where key !in (\"SourceSystem\", \"Type\")\r\n | summarize make_bag(p)\r\n )\r\n| project Time=TimeGenerated, Operation=OperationName, Result=ResultSignature, Duration = DurationMs, [\"Details\"]=bag_p\r\n| sort by Time desc",
  2513. "resultFormat": "time_series",
  2514. "workspace": "$ws"
  2515. },
  2516. "azureMonitor": {
  2517. "aggOptions": [],
  2518. "dimensionFilter": "*",
  2519. "dimensionFilters": [],
  2520. "metricDefinition": "select",
  2521. "metricName": "select",
  2522. "metricNamespace": "select",
  2523. "resourceGroup": "select",
  2524. "resourceName": "select",
  2525. "timeGrain": "auto",
  2526. "timeGrains": [],
  2527. "top": "10"
  2528. },
  2529. "insightsAnalytics": {
  2530. "query": "",
  2531. "resultFormat": "time_series"
  2532. },
  2533. "queryType": "Azure Log Analytics",
  2534. "refId": "A",
  2535. "subscription": "$sub"
  2536. }
  2537. ],
  2538. "title": "Operations by Time",
  2539. "type": "table"
  2540. }
  2541. ],
  2542. "refresh": false,
  2543. "schemaVersion": 27,
  2544. "style": "dark",
  2545. "tags": [],
  2546. "templating": {
  2547. "list": [
  2548. {
  2549. "current": {},
  2550. "description": null,
  2551. "error": null,
  2552. "hide": 0,
  2553. "includeAll": false,
  2554. "label": "Data Source",
  2555. "multi": false,
  2556. "name": "ds",
  2557. "options": [],
  2558. "query": "grafana-azure-monitor-datasource",
  2559. "queryValue": "",
  2560. "refresh": 1,
  2561. "regex": "",
  2562. "skipUrlSync": false,
  2563. "type": "datasource"
  2564. },
  2565. {
  2566. "allValue": null,
  2567. "current": {},
  2568. "datasource": "$ds",
  2569. "definition": "subscriptions()",
  2570. "description": null,
  2571. "error": null,
  2572. "hide": 0,
  2573. "includeAll": false,
  2574. "label": "subscription",
  2575. "multi": false,
  2576. "name": "sub",
  2577. "options": [],
  2578. "query": "subscriptions()",
  2579. "refresh": 1,
  2580. "regex": "",
  2581. "skipUrlSync": false,
  2582. "sort": 0,
  2583. "tagValuesQuery": "",
  2584. "tags": [],
  2585. "tagsQuery": "",
  2586. "type": "query",
  2587. "useTags": false
  2588. },
  2589. {
  2590. "allValue": null,
  2591. "current": {},
  2592. "datasource": "$ds",
  2593. "definition": "ResourceGroups($sub)",
  2594. "description": null,
  2595. "error": null,
  2596. "hide": 0,
  2597. "includeAll": false,
  2598. "label": "Resource Group",
  2599. "multi": false,
  2600. "name": "rg",
  2601. "options": [],
  2602. "query": "ResourceGroups($sub)",
  2603. "refresh": 1,
  2604. "regex": "",
  2605. "skipUrlSync": false,
  2606. "sort": 0,
  2607. "tagValuesQuery": "",
  2608. "tags": [],
  2609. "tagsQuery": "",
  2610. "type": "query",
  2611. "useTags": false
  2612. },
  2613. {
  2614. "description": null,
  2615. "error": null,
  2616. "hide": 2,
  2617. "label": "Namespace",
  2618. "name": "ns",
  2619. "query": "Microsoft.KeyVault/vaults",
  2620. "skipUrlSync": false,
  2621. "type": "constant"
  2622. },
  2623. {
  2624. "allValue": null,
  2625. "current": {},
  2626. "datasource": "$ds",
  2627. "definition": "ResourceNames($sub, $rg, $ns)",
  2628. "description": null,
  2629. "error": null,
  2630. "hide": 0,
  2631. "includeAll": false,
  2632. "label": null,
  2633. "multi": false,
  2634. "name": "resource",
  2635. "options": [],
  2636. "query": "ResourceNames($sub, $rg, $ns)",
  2637. "refresh": 1,
  2638. "regex": "",
  2639. "skipUrlSync": false,
  2640. "sort": 0,
  2641. "tagValuesQuery": "",
  2642. "tags": [],
  2643. "tagsQuery": "",
  2644. "type": "query",
  2645. "useTags": false
  2646. },
  2647. {
  2648. "allValue": null,
  2649. "current": {},
  2650. "datasource": "$ds",
  2651. "definition": "Workspaces($sub)",
  2652. "description": null,
  2653. "error": null,
  2654. "hide": 0,
  2655. "includeAll": false,
  2656. "label": "Workspace",
  2657. "multi": false,
  2658. "name": "ws",
  2659. "options": [],
  2660. "query": "Workspaces($sub)",
  2661. "refresh": 1,
  2662. "regex": "",
  2663. "skipUrlSync": false,
  2664. "sort": 0,
  2665. "tagValuesQuery": "",
  2666. "tags": [],
  2667. "tagsQuery": "",
  2668. "type": "query",
  2669. "useTags": false
  2670. }
  2671. ]
  2672. },
  2673. "time": {
  2674. "from": "now-24h",
  2675. "to": "now"
  2676. },
  2677. "timepicker": {},
  2678. "timezone": "",
  2679. "title": "Azure / Insights / Key vaults",
  2680. "uid": "tQZAMYrMk",
  2681. "version": 42
  2682. }