From 61be61cc89d012e155c9d79ccec43dc60b4d0ae3 Mon Sep 17 00:00:00 2001 From: Hugo Bernier Date: Sat, 6 Nov 2021 18:47:22 -0400 Subject: [PATCH] Added app insights video --- samples/react-appinsights-dashboard/README.md | 45 ++++++++++++++---- .../assets/video-thumbnail.jpg | Bin 0 -> 33397 bytes 2 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 samples/react-appinsights-dashboard/assets/video-thumbnail.jpg diff --git a/samples/react-appinsights-dashboard/README.md b/samples/react-appinsights-dashboard/README.md index a4614f5f2..21ee86477 100644 --- a/samples/react-appinsights-dashboard/README.md +++ b/samples/react-appinsights-dashboard/README.md @@ -19,6 +19,17 @@ extensions: This web part displays different statistics data captured in the **Azure Application Insights** in a graphical representation. Filters are provided to search for certain period of days. There are few **Application Customizer** which can be activated in **SharePoint Online** to track page view, performance etc., to **Azure Application Insights**, but the data can be viewed only by the administrator who is in-charge of **Azure portal**. Not all the users will have access to this data, this web gupart will provide access to those data that can be used by the portal administrators and developers to keep track of the page performance and hits. Fetched insights data using **[Application Insights API](https://dev.applicationinsights.io/)**. + +## Compatibility + +![SPFx 1.10](https://img.shields.io/badge/SPFx-1.10.0-green.svg) +![Node.js v10 | v8](https://img.shields.io/badge/Node.js-v10%20%7C%20v8-green.svg) +![Compatible with SharePoint Online](https://img.shields.io/badge/SharePoint%20Online-Compatible-green.svg) +![Does not work with SharePoint 2019](https://img.shields.io/badge/SharePoint%20Server%202019-Incompatible-red.svg "SharePoint Server 2019 requires SPFx 1.4.1 or lower") +![Does not work with SharePoint 2016 (Feature Pack 2)](https://img.shields.io/badge/SharePoint%20Server%202016%20(Feature%20Pack%202)-Incompatible-red.svg "SharePoint Server 2016 Feature Pack 2 requires SPFx 1.1") +![Local Workbench Incompatible](https://img.shields.io/badge/Local%20Workbench-Incompatible-red.svg "Requires API access") +![Hosted Workbench Compatible](https://img.shields.io/badge/Hosted%20Workbench-Compatible-green.svg) + ## Pre-requisites **Azure Application Insights** has to be configured. If you want to track the **SharePoint Online** web parts and pages, please use either of the following **Application Customizer** or you can use your own extensions to track the pages and other components. @@ -60,15 +71,11 @@ Following are required to access the data using **[App Insights API](https://dev * [SharePoint Framework](https://docs.microsoft.com/sharepoint/dev/spfx/sharepoint-framework-overview) * [Office 365 tenant](https://docs.microsoft.com/sharepoint/dev/spfx/set-up-your-development-environment) -## SharePoint Framework Pre-requisites - -**@microsoft/generator-sharepoint - 1.10.0** - ## Solution Solution|Author(s) --------|--------- -react-appinsights-dashboard | Sudharsan K.([@sudharsank](https://twitter.com/sudharsank), [Know More](http://windowssharepointserver.blogspot.com/)) +react-appinsights-dashboard | [Sudharsan K.](https://github.com/sudharsank)([@sudharsank](https://twitter.com/sudharsank), [Know More](http://windowssharepointserver.blogspot.com/)) ## Version history @@ -77,12 +84,10 @@ Version|Date|Comments 1.0.0.0|May 10, 2020|Initial release 1.0.0.1|June 16, 2020|Initial release -## Disclaimer -**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** - ## Minimal Path to Awesome - Clone this repository +- From your command line, change your current directory to the directory containing this sample (`react-appinsights-dashboard`, located under `samples`) - in the command line run: - `npm install` - `gulp bundle --ship && gulp package-solution --ship` @@ -91,4 +96,28 @@ Version|Date|Comments This solution doesn't work on local mode. +## Video + +[![App Insights Dashboard with React based web parts](./assets/video-thumbnail.jpg)](https://www.youtube.com/watch?v=ynwGKrvIimo "App Insights Dashboard with React based web parts") + +## Disclaimer + +**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** + +## Help + +We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues. + +If you're having issues building the solution, please run [spfx doctor](https://pnp.github.io/cli-microsoft365/cmd/spfx/spfx-doctor/) from within the solution folder to diagnose incompatibility issues with your environment. + +You can try looking at [issues related to this sample](https://github.com/pnp/sp-dev-fx-webparts/issues?q=label%3Areact-appinsights-dashboard) to see if anybody else is having the same issues. + +You can also try looking at [discussions related to this sample](https://github.com/pnp/sp-dev-fx-webparts/discussions?discussions_q=label%3Areact-appinsights-dashboard) and see what the community is saying. + +If you encounter any issues while using this sample, [create a new issue](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=bug-report.yml&sample=react-appinsights-dashboard&authors=@sudharsank&title=react-appinsights-dashboard%20-%20). + +For questions regarding this sample, [create a new question](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=question.yml&sample=react-appinsights-dashboard&authors=@sudharsank&title=react-appinsights-dashboard%20-%20). + +Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=suggestion.yml&sample=react-appinsights-dashboard&authors=@sudharsank&title=react-appinsights-dashboard%20-%20). + diff --git a/samples/react-appinsights-dashboard/assets/video-thumbnail.jpg b/samples/react-appinsights-dashboard/assets/video-thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb1ef96bb6e613cc200072873d5e1c04a0e8553f GIT binary patch literal 33397 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 z zi~KrcbN8n}6{7&{*AHx0PX(L4m!jBUGAn-|aHmh!;qo(mhr4{oFpW}FmUeGxh!+dt?HZr6Mp+tN)Mq>_g0 zh8M&vJ9k5MLXaqG<$V!HZJ{7ZC4O?}hYsynDpm{4U`>+l_7k!mSx>glTPh<)XxKRg zydwie3quF2U-RJQV2R*R4~wlHROaP!wYz39+hg%!tQoo#3;(XN>Sw=~4=2%u?ltiH zUPkR!_zrm)3_W#tSMuoErEnA1m0D=>)m3nqIU09fz~k{DG9KsEb{M@h+4bCy&BO?8 z=6tTc^`wg83w=!VozmjvK;UrR}mfSi9FSs?#PF<4szye)?ea3 z*i_&qjN`v!soEh_;1kg^JSSgdJrk|ad}2D{ILZ{oawr;P${|8wK)+E3&RTvrC{k&A z&%1kx)hEsiJagBO$c0(YnrFbi^~B_OCXyoeTNa;|?GNRlms?9=9-lJ&p+?YWyP}7Z z9=xgh7zgO4rQvSsMMi@Tw)fsCR%{Ug{P&`rxl$)|&^}KMt0-FHlZC@A@^PVL0hah*vSErgq4)m-|!^JYAR}Y4k1X0f$~rP?V}%Ml^+G z=&$RY=d?sV#@J1u*Jbqrmo=VlPTp{inDu)_2JUFC-LrqCdwl$~f~=q*Rm8%iG+X!h zr65M}I@Z7kxS`aqeRUrMuiw?mgAVi4kIN?|g^919{p`F|DZ{gr9&GE8$zK*|?su&B znBzv9jkS~C{B2xhWCxghl}M|{+~rtm+{+O za>C}Sx0`i+YU8DO1`=0=R1;P=VzjP{BKn_@fusj+vM={moaNt4TsIR*T03(c-R}oJ zf;>nsiMwsQsnyq+ZEV;nq-rRqa}qdvJ8RD1W8&o5&wXvn{J5LZrfAlDf=KKL5GRBsOBvA)?7~Micx)kzZl{_7Q>s z*CC=t1bRFQ=Z!&wga5c^_VhN&XRvIsCQBps!RM+!>@W=KWY{p~DVCe$HF*l2UXVMT z!a_`KP$Z!%`6RFg%`1~M%PGePDtHQS-e~|8e`R8E9`|=gu*q~}YC6VFsE_GT|YKT{?|Dqb|hAdlOo@b+W2T-Hq6eU;~+^=u`jR|xM1TN`MJ zfpzX#q@O8QuZFSzrPR={NFKB=tUci1=A&?dSd zAwg$E?Z*klO==p1O6=IdgNI+{lfAtit?c1;N^>=>1Gu||La>bsa*#;CCkVqbglgmN zSd~&f@%Xu+F7DIXwqa3DuCa!|2-Ig0Cg*UJn2Jnd%U<@#Q3d;E%0o1Y5kcJ1uw*}{k4Der&Ux6r>jjrvH`FNn

zC5b$)H7Y2Q1W}V*!U-zYTioc6p_vf#L#^cZEbZLQTq=N>4r&_|-60SL;5VkMRtGUG^!S7psx~MciD3zA-DZes zO=J&0b7Ky3bM8C+=@Y7F9SR%_7TDDwd_>lot>QvpI?RLAU1k! zq(AO>zm9wMZvR%RN7IuZ0MCu2cx2DP1*%yx!0Y!Deo|2w7t{jh@Z*^D@LOngz`ukr zu6$v6!~JN@{t1GyR8{KvW8*7l45%;c9qU-5#X@J0V2{P0#9Pr2+k9Zq>dV>saN=xO z@5tlHyKn*Z&1uQfji2qtm17*#jNmb+%0_|qI0ipC?xC&qv2EAOHzbr#(q6PYH^tU^ z)Ui?Bfvdr!Mu^$jgo#aumK|54N#Mk7M&+~|_=7_UHX=ATlr8C!5zk~W-<2w=^Co!pvFqUZMd(XWp6}L_XZW^_oWk*HeJWfErfm;0Cg^h;5rq!%QcnY)=> zNseLy!OXnq@!G}uugjC#%N;1f6a4hFc%UKAb7i4=x~sV|11F}}#k4bobMkp9R$w2% zsV(ufdo%Wkg!YkX=Gf`?S(Elz*PXJW5F&6Mzo25IILhDBoV6tDU!OKr3l% z+%UgORZLaPOW(0i%x`X+mzGdobwMmF`{lOOoq5$MYKq(tabH9=qYRMQt

vy@HyQ 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 literal 0 HcmV?d00001