{"_id":"@fluid-experimental/app-insights-logger","_rev":"31-dbe117858f9ef0216918c7583e66f962","name":"@fluid-experimental/app-insights-logger","dist-tags":{"latest":"2.0.0-dev.7.3.0.211848","next":"2.0.0-dev.7.4.0.221926","canary":"2.0.0-internal.8.0.8"},"versions":{"2.0.0-dev.7.3.0.211848":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-dev.7.3.0.211848","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-dev.7.3.0.211848","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"661ff3203973ea526c12d6b428e561bd556f923d","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-dev.7.3.0.211848.tgz","fileCount":34,"integrity":"sha512-Pl7Y3h30u6SRlyUEOcuq5O/f5PDa8tO3sJcuM9KA64sE3P6zRuw1lSq5nB3u+F1egO2x0+Hd9eriTRA68imZ4g==","signatures":[{"sig":"MEYCIQDqOnodWRys/+2ZHO+qgOUUsPDQXQqsxf6KbBb1CzFIjgIhALVzpv4ELdSScymB+iR5G0UAy6XT84vUFBZKbq0TzxXk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166614},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-dev.7.3.0.211848.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run prettier && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --ignore-path ../../../../.prettierignore","build:docs":"api-extractor run --local","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-dev.7.3.0.211848.tgz","_integrity":"sha512-Pl7Y3h30u6SRlyUEOcuq5O/f5PDa8tO3sJcuM9KA64sE3P6zRuw1lSq5nB3u+F1egO2x0+Hd9eriTRA68imZ4g==","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":"2.0.0-dev.7.3.0.211848","@fluidframework/telemetry-utils":"2.0.0-dev.7.3.0.211848","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^16.18.38","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"0.28.0-210888","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":"2.0.0-dev.7.3.0.211848"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-dev.7.3.0.211848_1700173707575_0.36750525497888864","host":"s3://npm-registry-packages"}},"2.0.0-dev.7.3.0.212138":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-dev.7.3.0.212138","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-dev.7.3.0.212138","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"c672e14cebb0b5188d6206fe361f0b6ccb2c0286","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-dev.7.3.0.212138.tgz","fileCount":34,"integrity":"sha512-4aksCfDv6J4k3vUTEUfDENZpb5e6Gu8n8LhCwoSRz5KIO0qRhfsRTzljSCtgG0Aa6WabsW4XrSaYYwaD1CodAQ==","signatures":[{"sig":"MEUCIQC3qVqDgk4DMuuvQn2v2ujIHja1xaMxwMwjZopiKxkYYQIgOCbqJP1iQtf2VxvRfJVfTzsXLrdhvPThZeUwEwnTuSM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166659},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-dev.7.3.0.212138.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"tsc":"tsc","lint":"npm run prettier && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --ignore-path ../../../../.prettierignore","build:docs":"api-extractor run --local","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-dev.7.3.0.212138.tgz","_integrity":"sha512-4aksCfDv6J4k3vUTEUfDENZpb5e6Gu8n8LhCwoSRz5KIO0qRhfsRTzljSCtgG0Aa6WabsW4XrSaYYwaD1CodAQ==","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":"2.0.0-dev.7.3.0.212138","@fluidframework/telemetry-utils":"2.0.0-dev.7.3.0.212138","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^16.18.38","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":"2.0.0-dev.7.3.0.212138"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-dev.7.3.0.212138_1700253688271_0.7458203588840757","host":"s3://npm-registry-packages"}},"2.0.0-internal.7.3.0":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.7.3.0","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.7.3.0","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"b2f88ef72d543d3dc8f0fbad46d15ff67201ab6e","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.7.3.0.tgz","fileCount":34,"integrity":"sha512-1+ZwpdH1R8x5FdUSEL+wm8xtyp9U8rzQWFm3SGCEkFVBzMPl2wRucPp3VFch7Lg5fhPXLFCUbwKnkAkBCOyBww==","signatures":[{"sig":"MEYCIQDjLWbH96n5EielnEfwJNXIBs3qRC4QpICo0IAEgSEevgIhAOukQvQM0w9sbqiS2sEpKulkIcHsScY8VhR9MKNizGPv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166723},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.7.3.0.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"tsc":"tsc","lint":"npm run prettier && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --ignore-path ../../../../.prettierignore","build:docs":"api-extractor run --local","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.7.3.0.tgz","_integrity":"sha512-1+ZwpdH1R8x5FdUSEL+wm8xtyp9U8rzQWFm3SGCEkFVBzMPl2wRucPp3VFch7Lg5fhPXLFCUbwKnkAkBCOyBww==","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0","@fluidframework/telemetry-utils":">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^16.18.38","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":">=2.0.0-internal.7.3.0 <2.0.0-internal.7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.7.3.0_1700256153684_0.9836062213031946","host":"s3://npm-registry-packages"}},"2.0.0-dev.7.4.0.214930":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-dev.7.4.0.214930","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-dev.7.4.0.214930","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"5d98b95351497c9d027b44a2d034af88244fe802","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-dev.7.4.0.214930.tgz","fileCount":42,"integrity":"sha512-eB65Kj0GNeUraC0X5v8aXcQdrS7kOgMHFOrcUz9WVM+1VSvV8Cy4sf8FFq7ROKJhuLEQQ4YF5wBHx9aDfQjWjA==","signatures":[{"sig":"MEQCIFVSC/zBChpGR21nfiR0GKHQuTpUciG50D+0vISzGLuJAiA4IWDvK/u7SdkQgT3NAM/xMaHDULaDvGE2qdK5ZQkMvA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":228011},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.214930.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.214930.tgz","_integrity":"sha512-eB65Kj0GNeUraC0X5v8aXcQdrS7kOgMHFOrcUz9WVM+1VSvV8Cy4sf8FFq7ROKJhuLEQQ4YF5wBHx9aDfQjWjA==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":"2.0.0-dev.7.4.0.214930","@fluidframework/telemetry-utils":"2.0.0-dev.7.4.0.214930","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^16.18.38","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":"2.0.0-dev.7.4.0.214930"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-dev.7.4.0.214930_1701214892043_0.9317203523996698","host":"s3://npm-registry-packages"}},"2.0.0-dev.7.4.0.215366":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-dev.7.4.0.215366","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-dev.7.4.0.215366","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"553fa5cbe11cbd8f9377e669eb3409129ae6ca31","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-dev.7.4.0.215366.tgz","fileCount":42,"integrity":"sha512-y3Wl03SG+YOT59z33QhpWCqWuBrCxB7ldS0okG5xojotF49h7cAAt/0emdoeVXht72CWxoj34pZWmVraRZFsTQ==","signatures":[{"sig":"MEQCIGT2CAslXHped5afzI7roW+9MHSx0wxgtSNkkcRaE2BTAiA52vR1RwRv2Cu5EN2BAFOL41Qf36p75+d6RcOzv72PJA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":228011},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.215366.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.215366.tgz","_integrity":"sha512-y3Wl03SG+YOT59z33QhpWCqWuBrCxB7ldS0okG5xojotF49h7cAAt/0emdoeVXht72CWxoj34pZWmVraRZFsTQ==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":"2.0.0-dev.7.4.0.215366","@fluidframework/telemetry-utils":"2.0.0-dev.7.4.0.215366","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^16.18.38","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":"2.0.0-dev.7.4.0.215366"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-dev.7.4.0.215366_1701299323378_0.8858053643234014","host":"s3://npm-registry-packages"}},"2.0.0-dev.7.4.0.215747":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-dev.7.4.0.215747","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-dev.7.4.0.215747","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"4ee14fea2c8b0383f73d46699ada6965c0c1f26f","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-dev.7.4.0.215747.tgz","fileCount":42,"integrity":"sha512-tz1zc3Hc9k/QjjdCUBWkYDQYAv3YIkyDhdSNfaNwzoOmmkL68RyrG/NQoFdCI7jhPF5D21U6qiZLy6ejp9lZCQ==","signatures":[{"sig":"MEQCIHGHarphefWsmir9aeVO+sX6uEDXSvnzFOn0yMZPYG2kAiAZ9NhpBeGEMeZPTE0+/GtNiSl29MrC7FEgneCjcXfruQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":228011},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.215747.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.215747.tgz","_integrity":"sha512-tz1zc3Hc9k/QjjdCUBWkYDQYAv3YIkyDhdSNfaNwzoOmmkL68RyrG/NQoFdCI7jhPF5D21U6qiZLy6ejp9lZCQ==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":"2.0.0-dev.7.4.0.215747","@fluidframework/telemetry-utils":"2.0.0-dev.7.4.0.215747","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^16.18.38","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":"2.0.0-dev.7.4.0.215747"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-dev.7.4.0.215747_1701365619847_0.72082413986608","host":"s3://npm-registry-packages"}},"2.0.0-dev.7.4.0.215930":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-dev.7.4.0.215930","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-dev.7.4.0.215930","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"ffc3ea34c6c141450ede99914cfc17debbbd1833","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-dev.7.4.0.215930.tgz","fileCount":42,"integrity":"sha512-SunUBPPBCnWxHYKcY3cFtWEzD6QHDVJ9JUn8dnq2BNgD86v84+k2uXCbgILmox7xI9XhTIca6sgV76A41zlGJQ==","signatures":[{"sig":"MEQCICy6DwxjKttpEj/2/itc2buAsH5AZ1TO7U7Vo9Izunu0AiBpHLO7YnLM3BzCyPOHovdUm9yGkEjOacF9Iq6PPlm39g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":228011},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.215930.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.215930.tgz","_integrity":"sha512-SunUBPPBCnWxHYKcY3cFtWEzD6QHDVJ9JUn8dnq2BNgD86v84+k2uXCbgILmox7xI9XhTIca6sgV76A41zlGJQ==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":"2.0.0-dev.7.4.0.215930","@fluidframework/telemetry-utils":"2.0.0-dev.7.4.0.215930","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^16.18.38","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":"2.0.0-dev.7.4.0.215930"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-dev.7.4.0.215930_1701377047701_0.919908207514557","host":"s3://npm-registry-packages"}},"2.0.0-dev.7.4.0.216897":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-dev.7.4.0.216897","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-dev.7.4.0.216897","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"5b443a3331d3fadd76886bf87145b8a3bafcdc64","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-dev.7.4.0.216897.tgz","fileCount":43,"integrity":"sha512-ca5zTn4T+jxAzBpEdyK9OWV8lpTLJbmxxfmXQfy899Mfy36rsqcZdSJcqTAmcILeLjPfAREaZSYL7p/wT2R2AA==","signatures":[{"sig":"MEYCIQCOYlyX/Cc/huaznpCEEIPMLbSe8SnFqgtuDeIMKQrj1QIhAP0ZNlS8Rt/pinCfX6umFBRdIfo+KALeA/P1I4B0jW1+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":187971},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.216897.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.216897.tgz","_integrity":"sha512-ca5zTn4T+jxAzBpEdyK9OWV8lpTLJbmxxfmXQfy899Mfy36rsqcZdSJcqTAmcILeLjPfAREaZSYL7p/wT2R2AA==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":"2.0.0-dev.7.4.0.216897","@fluidframework/telemetry-utils":"2.0.0-dev.7.4.0.216897","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^16.18.38","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":"2.0.0-dev.7.4.0.216897"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-dev.7.4.0.216897_1701467228940_0.7566166931582479","host":"s3://npm-registry-packages"}},"2.0.0-dev.7.4.0.217212":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-dev.7.4.0.217212","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-dev.7.4.0.217212","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"06a6ce17014b953533e2d6b7d3040b9bd29e2c0a","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-dev.7.4.0.217212.tgz","fileCount":43,"integrity":"sha512-h/mFy173xhH9AA/TbtTUoOhwVimz89MFJukUxqdjgsRB2N3yTA6lgNCSSjcDhHlKn/JgkKrj4+XRpmmlOFCSAw==","signatures":[{"sig":"MEUCIAlM6e1DYl4KAP/rRVIt48nY4chfkeUJqli/jqjttpx+AiEA1Ui54M7qMmkIrTOzZOO9xSf7SIIg0OCW12k2QUL+dqE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":188011},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.217212.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.217212.tgz","_integrity":"sha512-h/mFy173xhH9AA/TbtTUoOhwVimz89MFJukUxqdjgsRB2N3yTA6lgNCSSjcDhHlKn/JgkKrj4+XRpmmlOFCSAw==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":"2.0.0-dev.7.4.0.217212","@fluidframework/telemetry-utils":"2.0.0-dev.7.4.0.217212","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^16.18.38","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":"2.0.0-dev.7.4.0.217212"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-dev.7.4.0.217212_1701540713153_0.49144668849366036","host":"s3://npm-registry-packages"}},"2.0.0-dev.7.4.0.217884":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-dev.7.4.0.217884","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-dev.7.4.0.217884","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"3b2ce62b0f50282d835257d1a1612b77db8413c6","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-dev.7.4.0.217884.tgz","fileCount":43,"integrity":"sha512-HB+q7ZRPycuUTRvfRzZdgZ3GAFjwJU9H3oHOA2s9G6RUjcVXBJeiWGsE77feSHPFx7fWsExakMM0d8Ya4zYNkg==","signatures":[{"sig":"MEUCIE+kLg/8ZQL64Ave0Zj6IIuLWxdtaWY2W3TZYvfTkvLUAiEAu70Z1sw+KYBfuW/uGKJOa2vUoN+xLt9lntHnFYPXjNQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":188100},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.217884.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.217884.tgz","_integrity":"sha512-HB+q7ZRPycuUTRvfRzZdgZ3GAFjwJU9H3oHOA2s9G6RUjcVXBJeiWGsE77feSHPFx7fWsExakMM0d8Ya4zYNkg==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":"2.0.0-dev.7.4.0.217884","@fluidframework/telemetry-utils":"2.0.0-dev.7.4.0.217884","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":"2.0.0-dev.7.4.0.217884"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-dev.7.4.0.217884_1701806195266_0.41932720719242034","host":"s3://npm-registry-packages"}},"2.0.0-dev.7.4.0.221926":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-dev.7.4.0.221926","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-dev.7.4.0.221926","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"63f58e7c52a181836c887260f996ec91f58ab369","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-dev.7.4.0.221926.tgz","fileCount":43,"integrity":"sha512-W4w5dbJGysTEUFLi9PNBls1au5Wkrv/iiow68nHnp6bNIMNlkIsFj0sg4QGJj6Aa+9ZSQLnAmc2ORqLc8SSUmA==","signatures":[{"sig":"MEUCIBQMf5uzslBdzYLEYCK0DRrPvDbQUOd4qePZYXcKobkXAiEA4MSTioVPuZv4ASQnmcQFbAuzivKBix0NdjjxrUdpqb0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":188993},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.221926.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-dev.7.4.0.221926.tgz","_integrity":"sha512-W4w5dbJGysTEUFLi9PNBls1au5Wkrv/iiow68nHnp6bNIMNlkIsFj0sg4QGJj6Aa+9ZSQLnAmc2ORqLc8SSUmA==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":"2.0.0-dev.7.4.0.221926","@fluidframework/telemetry-utils":"2.0.0-dev.7.4.0.221926","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":"2.0.0-dev.7.4.0.221926"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-dev.7.4.0.221926_1702428571846_0.3562249653586127","host":"s3://npm-registry-packages"}},"2.0.0-internal.7.4.0":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.7.4.0","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.7.4.0","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"fdfc23dd0c12fe5464fe6573e4379fbe72d651fd","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.7.4.0.tgz","fileCount":43,"integrity":"sha512-gcECRCNM/uiLOjMAupN3xXBhGaFrIOx2WpBcwVpb+oxMq13iIDrMaZ5nM80MKsMr6QmajB/yNtH5QgE3kbKrgw==","signatures":[{"sig":"MEUCIAO1Hg5viOUyn+siJolKinItrW/zkd2jV5aqD49y+m0LAiEAq0KVH1Ca0f2ZwV6ievcaeFwUsHQecBMfplNopRaoqX0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189057},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.7.4.0.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.7.4.0.tgz","_integrity":"sha512-gcECRCNM/uiLOjMAupN3xXBhGaFrIOx2WpBcwVpb+oxMq13iIDrMaZ5nM80MKsMr6QmajB/yNtH5QgE3kbKrgw==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":">=2.0.0-internal.7.4.0 <2.0.0-internal.7.5.0","@fluidframework/telemetry-utils":">=2.0.0-internal.7.4.0 <2.0.0-internal.7.5.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":">=2.0.0-internal.7.4.0 <2.0.0-internal.7.5.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.7.4.0_1702490651931_0.03046718613999566","host":"s3://npm-registry-packages"}},"2.0.0-internal.8.0.0":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.8.0.0","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.8.0.0","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"1fe64fb8ebc9b2495c6302943d45a943c079edc0","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.8.0.0.tgz","fileCount":43,"integrity":"sha512-HGNxJZgItBu+3fyAUpPgGhpS+g3SV3zzmkyLH1rI5u76XNoZLxscYErP092BMEt5SsS7203hqiw5HZ9lhENwdQ==","signatures":[{"sig":"MEUCIEozV/hrYOMhgLQlYJScMGgOHe2CrXBFMfE4UHrGrYyFAiEA9s15mq/O63kypBkqmKPL4g807WuBm2N44xHZmAkm4Ek=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189108},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.8.0.0.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.8.0.0.tgz","_integrity":"sha512-HGNxJZgItBu+3fyAUpPgGhpS+g3SV3zzmkyLH1rI5u76XNoZLxscYErP092BMEt5SsS7203hqiw5HZ9lhENwdQ==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0","@fluidframework/telemetry-utils":">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":">=2.0.0-internal.8.0.0 <2.0.0-internal.8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.8.0.0_1702524462522_0.7167330904132978","host":"s3://npm-registry-packages"}},"2.0.0-internal.8.0.1":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.8.0.1","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.8.0.1","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"9afcc90174479bcbf154be54627969545c56d3e0","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.8.0.1.tgz","fileCount":43,"integrity":"sha512-3VWfad6+HhB5tfY1AvlBy80o2z8uibLufm3T8X3oJHNLSZCEWYdYE4LhLW99Uu2S94zEaarhQ+MPqO8n6b3shA==","signatures":[{"sig":"MEUCIQCaeF0+9Xz7H5fgKUcPTZ6Jxh1NT8HUph1Z55+9uWZHEgIga6SGatfYJH5CKgra2dB3Au4TjmhkU3ozUUmJ0dXj1A0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189108},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.8.0.1.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.8.0.1.tgz","_integrity":"sha512-3VWfad6+HhB5tfY1AvlBy80o2z8uibLufm3T8X3oJHNLSZCEWYdYE4LhLW99Uu2S94zEaarhQ+MPqO8n6b3shA==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":">=2.0.0-internal.8.0.1 <2.0.0-internal.8.1.0","@fluidframework/telemetry-utils":">=2.0.0-internal.8.0.1 <2.0.0-internal.8.1.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":">=2.0.0-internal.8.0.1 <2.0.0-internal.8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.8.0.1_1704477538090_0.9740308595341944","host":"s3://npm-registry-packages"}},"2.0.0-internal.8.0.2":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.8.0.2","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.8.0.2","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"530cb33beafc0863d887bf2e308bc13163102fe5","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.8.0.2.tgz","fileCount":43,"integrity":"sha512-6AejwF6WPvckYsXwz2yH6bzUPUosmXsMmiskWTxdg8CnsHYC5T5fOliq3jN0qAp6ZDrOBsnbFqh25a8meq1jZQ==","signatures":[{"sig":"MEUCIBmwGnWkihkGd0txdSe7qp60ey6hV/XqTGAz/UdBrv46AiEA9ep0OlH3J3Li1RyiexD1qn5hR2ZiVLcWxTHSlwnQm7M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189108},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.8.0.2.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.8.0.2.tgz","_integrity":"sha512-6AejwF6WPvckYsXwz2yH6bzUPUosmXsMmiskWTxdg8CnsHYC5T5fOliq3jN0qAp6ZDrOBsnbFqh25a8meq1jZQ==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":">=2.0.0-internal.8.0.2 <2.0.0-internal.8.1.0","@fluidframework/telemetry-utils":">=2.0.0-internal.8.0.2 <2.0.0-internal.8.1.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":">=2.0.0-internal.8.0.2 <2.0.0-internal.8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.8.0.2_1704925956250_0.46176346623468434","host":"s3://npm-registry-packages"}},"2.0.0-internal.7.4.1":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.7.4.1","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.7.4.1","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"eb0fc53bd2d95377f34ee1d6706f26febabcfb42","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.7.4.1.tgz","fileCount":43,"integrity":"sha512-kvYdRpOkKE8+sJ0XiYoucBubbqZYBMICw/nEsy/ewKQgCzB2c+AYYHr2CjYt+7Rr4qponOxTg16c/t1BkUUVow==","signatures":[{"sig":"MEUCIQCrE/FkO628cTvKRSTWBgz4aJkr5bWzULX4MYApKrhPgwIgC/rCBYt2f1FrM6av5gysfFIFvDrRsPcbzRq4GjMvmF4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189057},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.7.4.1.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.7.4.1.tgz","_integrity":"sha512-kvYdRpOkKE8+sJ0XiYoucBubbqZYBMICw/nEsy/ewKQgCzB2c+AYYHr2CjYt+7Rr4qponOxTg16c/t1BkUUVow==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":">=2.0.0-internal.7.4.1 <2.0.0-internal.7.5.0","@fluidframework/telemetry-utils":">=2.0.0-internal.7.4.1 <2.0.0-internal.7.5.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":">=2.0.0-internal.7.4.1 <2.0.0-internal.7.5.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.7.4.1_1704930689656_0.5750740182498897","host":"s3://npm-registry-packages"}},"2.0.0-internal.7.4.2":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.7.4.2","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.7.4.2","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"b377c590ef07dc77d96047360078cd9ae0550da1","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.7.4.2.tgz","fileCount":43,"integrity":"sha512-h1Q+Z4K4IgnaAMoqlV0qH6Ycsyu9uxQWD+BK9kLvCNKc6TQdcTp8S9ST1HVTi0u6sU8swOKP84GuK8JSGzof/g==","signatures":[{"sig":"MEUCIQC123NsGioFPw6ZG/hLsJYEyBNPv2aTvsuXlx4Bxe4+zAIgexzeCKYqsP2NMYDFmHs4IYQHKwnkYK0fTiO0TUZS2hs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189057},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.7.4.2.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.7.4.2.tgz","_integrity":"sha512-h1Q+Z4K4IgnaAMoqlV0qH6Ycsyu9uxQWD+BK9kLvCNKc6TQdcTp8S9ST1HVTi0u6sU8swOKP84GuK8JSGzof/g==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":">=2.0.0-internal.7.4.2 <2.0.0-internal.7.5.0","@fluidframework/telemetry-utils":">=2.0.0-internal.7.4.2 <2.0.0-internal.7.5.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":">=2.0.0-internal.7.4.2 <2.0.0-internal.7.5.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.7.4.2_1705435279254_0.7136459100947732","host":"s3://npm-registry-packages"}},"2.0.0-internal.8.0.3":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.8.0.3","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.8.0.3","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"25d2a52bc299f4caa0318bf501a6e1b4f21e0291","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.8.0.3.tgz","fileCount":43,"integrity":"sha512-mSjlBBa7gDWJk5MXHmKQ7Zbh5e33KUjhfwRfs9c3EI3jMpjeLBq/H4r/90UIRTGGuqkaVcJ5XM08uD1EKwEX/g==","signatures":[{"sig":"MEYCIQCLZ4oMCxyEowhj7uSy78TFIdNjnISGWk2ijdGg6U4dhQIhALdvmX27W5S8ynNE7Pgmxi/GcmuSAFZe8c0ZNMDhXGNN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189108},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.8.0.3.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.8.0.3.tgz","_integrity":"sha512-mSjlBBa7gDWJk5MXHmKQ7Zbh5e33KUjhfwRfs9c3EI3jMpjeLBq/H4r/90UIRTGGuqkaVcJ5XM08uD1EKwEX/g==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@fluidframework/core-interfaces":">=2.0.0-internal.8.0.3 <2.0.0-internal.8.1.0","@fluidframework/telemetry-utils":">=2.0.0-internal.8.0.3 <2.0.0-internal.8.1.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@fluidframework/mocha-test-setup":">=2.0.0-internal.8.0.3 <2.0.0-internal.8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.8.0.3_1705435607704_0.17057473456220107","host":"s3://npm-registry-packages"}},"2.0.0-internal.7.4.3":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.7.4.3","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.7.4.3","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"312c3ed6b74afdece077108eb23ba55f921e1358","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.7.4.3.tgz","fileCount":43,"integrity":"sha512-yt2hDVzBe5HhFV9sdr+dEhoaqjIseEP1CEWindTpTveO7UKmcyBevIEzwLLz1RVjxXhjXlWdY6rHLBDa5r6x9A==","signatures":[{"sig":"MEUCID6LnVrHWK75L7Fu4v/4aEwQk8aten5coQo9rDjkV2IUAiEA2cqLQCVkNlOAihI6Xw6MMQz1aYElSvLa/DtlrdfFu5M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189662},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.7.4.3.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.7.4.3.tgz","_integrity":"sha512-yt2hDVzBe5HhFV9sdr+dEhoaqjIseEP1CEWindTpTveO7UKmcyBevIEzwLLz1RVjxXhjXlWdY6rHLBDa5r6x9A==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@ungap/structured-clone":"^1.2.0","@fluidframework/core-interfaces":">=2.0.0-internal.7.4.3 <2.0.0-internal.7.5.0","@fluidframework/telemetry-utils":">=2.0.0-internal.7.4.3 <2.0.0-internal.7.5.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@types/ungap__structured-clone":"^1.2.0","@fluidframework/mocha-test-setup":">=2.0.0-internal.7.4.3 <2.0.0-internal.7.5.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.7.4.3_1705619153295_0.5024239124871706","host":"s3://npm-registry-packages"}},"2.0.0-internal.8.0.4":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.8.0.4","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.8.0.4","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"680991a2719cd7eef8f0be494f659149af794769","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.8.0.4.tgz","fileCount":43,"integrity":"sha512-WcOhmYZD0zHXmKPxs3Jdr+1FOoaPeZtgA2Jv7VECCXcmMxSDTz4Vhpnfn27d8jV5xKn3LiGry5cLMgzifhxDaw==","signatures":[{"sig":"MEYCIQC/myGVVARl3Gx8E4yCnI2vXr5AGe6btztJK2l94xyPEAIhAPFql1DzG7B3d5dezvOQuKN1pk70Re941KgpJmDkJLBj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189713},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.8.0.4.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.8.0.4.tgz","_integrity":"sha512-WcOhmYZD0zHXmKPxs3Jdr+1FOoaPeZtgA2Jv7VECCXcmMxSDTz4Vhpnfn27d8jV5xKn3LiGry5cLMgzifhxDaw==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@ungap/structured-clone":"^1.2.0","@fluidframework/core-interfaces":">=2.0.0-internal.8.0.4 <2.0.0-internal.8.1.0","@fluidframework/telemetry-utils":">=2.0.0-internal.8.0.4 <2.0.0-internal.8.1.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@types/ungap__structured-clone":"^1.2.0","@fluidframework/mocha-test-setup":">=2.0.0-internal.8.0.4 <2.0.0-internal.8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.8.0.4_1705619870853_0.9829870630657789","host":"s3://npm-registry-packages"}},"2.0.0-internal.7.4.4":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.7.4.4","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.7.4.4","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"3dd4344064bdab563f4b11b74d97876e285a9ffc","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.7.4.4.tgz","fileCount":43,"integrity":"sha512-XHyL/dLQth9Ld6oSkglm5ZEzlWQAz07gsBveVAHwpe/Xy8226A3t3YnHsUfQAX/zrofebDR0ToejzDsjPBRvNA==","signatures":[{"sig":"MEUCIQCJqX+txXhB4qH28KCAi/PaNQaUqmBMPJG2I4pwNATyHgIgXyIAhf3AYL5C2scYwpHxuqwWHq3sjq2hIaVqveHzdzk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189662},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.7.4.4.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.7.4.4.tgz","_integrity":"sha512-XHyL/dLQth9Ld6oSkglm5ZEzlWQAz07gsBveVAHwpe/Xy8226A3t3YnHsUfQAX/zrofebDR0ToejzDsjPBRvNA==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@ungap/structured-clone":"^1.2.0","@fluidframework/core-interfaces":">=2.0.0-internal.7.4.4 <2.0.0-internal.7.5.0","@fluidframework/telemetry-utils":">=2.0.0-internal.7.4.4 <2.0.0-internal.7.5.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@types/ungap__structured-clone":"^1.2.0","@fluidframework/mocha-test-setup":">=2.0.0-internal.7.4.4 <2.0.0-internal.7.5.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.7.4.4_1707246240074_0.0065144214266519285","host":"s3://npm-registry-packages"}},"2.0.0-internal.7.4.5":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.7.4.5","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.7.4.5","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"f0135d6185339c49a3bf8a372a2a14d8b2cecf90","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.7.4.5.tgz","fileCount":43,"integrity":"sha512-97NLowPsUV7bZxH5TkhUEYCUs77NQ2dBbWBXrLeM4mCc4uweeZsE90eiuWKM45br8ORlRU2fMJFEJdMlgCCt9w==","signatures":[{"sig":"MEUCIB+2d5iiuV+r+YziDAxr8FEIe3JU0sqzXsvvs1oIrvVlAiEA67N6OhmNgZU8DGFiJkoCY7TCIZ8bQj6CEr7zljmgyXI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189662},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.7.4.5.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.7.4.5.tgz","_integrity":"sha512-97NLowPsUV7bZxH5TkhUEYCUs77NQ2dBbWBXrLeM4mCc4uweeZsE90eiuWKM45br8ORlRU2fMJFEJdMlgCCt9w==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@ungap/structured-clone":"^1.2.0","@fluidframework/core-interfaces":">=2.0.0-internal.7.4.5 <2.0.0-internal.7.5.0","@fluidframework/telemetry-utils":">=2.0.0-internal.7.4.5 <2.0.0-internal.7.5.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@types/ungap__structured-clone":"^1.2.0","@fluidframework/mocha-test-setup":">=2.0.0-internal.7.4.5 <2.0.0-internal.7.5.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.7.4.5_1707343993516_0.09685676957407252","host":"s3://npm-registry-packages"}},"2.0.0-internal.7.4.6":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.7.4.6","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.7.4.6","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"043ac35008119713bcaabda22193933a57a4624b","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.7.4.6.tgz","fileCount":43,"integrity":"sha512-ZJQ7XazPw3EYQsqfgrQVIv78dAEK55sb+fWZNP/nNFpOP2bJNDdXDqtNUqGMO4FZB9K7n3GoFSBaYBPdZiydxw==","signatures":[{"sig":"MEYCIQD6+DwoN4bKzsUC+F+msWZy4xJnAXurp+vz06fPpZYcUgIhAI+CgdrrK2V1lMO6SfI7DMQaAIJN5bjz0H5kxFHe5bFU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189662},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.7.4.6.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.7.4.6.tgz","_integrity":"sha512-ZJQ7XazPw3EYQsqfgrQVIv78dAEK55sb+fWZNP/nNFpOP2bJNDdXDqtNUqGMO4FZB9K7n3GoFSBaYBPdZiydxw==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@ungap/structured-clone":"^1.2.0","@fluidframework/core-interfaces":">=2.0.0-internal.7.4.6 <2.0.0-internal.7.5.0","@fluidframework/telemetry-utils":">=2.0.0-internal.7.4.6 <2.0.0-internal.7.5.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@types/ungap__structured-clone":"^1.2.0","@fluidframework/mocha-test-setup":">=2.0.0-internal.7.4.6 <2.0.0-internal.7.5.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.7.4.6_1707353934726_0.10370650963642802","host":"s3://npm-registry-packages"}},"2.0.0-internal.8.0.5":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.8.0.5","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.8.0.5","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"3d6eef81cc1edbdbbad1cc8e15b3e125e27907e7","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.8.0.5.tgz","fileCount":43,"integrity":"sha512-pOghKPJAsPP4Uayg6zeIbH4PELZyUaLu3Zkvb3TSiPD+IyV3ONkeILE9GwkZOXSAQ2rxIId785qG40WJxhCD0w==","signatures":[{"sig":"MEUCIFQmZjUxYghcbFnwUyhxwst8UrOzRul1ny6jQyHpKngfAiEAju3HhiU9QcIxdNzLCFED6SjhEK92VKTcqTmzZJVsxvQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189713},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.8.0.5.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.8.0.5.tgz","_integrity":"sha512-pOghKPJAsPP4Uayg6zeIbH4PELZyUaLu3Zkvb3TSiPD+IyV3ONkeILE9GwkZOXSAQ2rxIId785qG40WJxhCD0w==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@ungap/structured-clone":"^1.2.0","@fluidframework/core-interfaces":">=2.0.0-internal.8.0.5 <2.0.0-internal.8.1.0","@fluidframework/telemetry-utils":">=2.0.0-internal.8.0.5 <2.0.0-internal.8.1.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@types/ungap__structured-clone":"^1.2.0","@fluidframework/mocha-test-setup":">=2.0.0-internal.8.0.5 <2.0.0-internal.8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.8.0.5_1707420799674_0.589885287414236","host":"s3://npm-registry-packages"}},"2.0.0-internal.8.0.6":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.8.0.6","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.8.0.6","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"8d4e1e4afacc38e40292e9782140a4f149370a61","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.8.0.6.tgz","fileCount":43,"integrity":"sha512-WmeY2vH2NLL7VaFB9F98t+kcG8xa4sxNNDzgNCCWhM+08DqKj9PSKpv7ctGuFizCXIl+d2Tmz9rjfmh4hHtVGg==","signatures":[{"sig":"MEYCIQDQTwSP2Kl6Oa0q70DNcyHzVpCdmVi9wdV/b49Rgmf1lQIhAO+TPRMtGAoQxq8/FAfWGTm5ppw0jEF+j6CPwhyKGJ4A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189713},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.8.0.6.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.8.0.6.tgz","_integrity":"sha512-WmeY2vH2NLL7VaFB9F98t+kcG8xa4sxNNDzgNCCWhM+08DqKj9PSKpv7ctGuFizCXIl+d2Tmz9rjfmh4hHtVGg==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@ungap/structured-clone":"^1.2.0","@fluidframework/core-interfaces":">=2.0.0-internal.8.0.6 <2.0.0-internal.8.1.0","@fluidframework/telemetry-utils":">=2.0.0-internal.8.0.6 <2.0.0-internal.8.1.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@types/ungap__structured-clone":"^1.2.0","@fluidframework/mocha-test-setup":">=2.0.0-internal.8.0.6 <2.0.0-internal.8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.8.0.6_1707783335966_0.44788729246255743","host":"s3://npm-registry-packages"}},"2.0.0-internal.7.4.7":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.7.4.7","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.7.4.7","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"c965a517c796aa87abff7e81f22000ac5f9bb803","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.7.4.7.tgz","fileCount":43,"integrity":"sha512-cm8AUDRj884MggYAkogUaqLyEPtrmwoZxTMbvFuvlV6wFp5N/BhkUNcaXUcgSvgbFnnb+PiYycdQrOs8ID+dZg==","signatures":[{"sig":"MEUCIAngpDjP00w2XctX4rq+pxrDiZ+2dcp8NotNI9f8+ArbAiEAjSbMqqZmrsLh0vCCId3yVFZXMz40R+RA2jCgzQi0NVQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189662},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.7.4.7.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.7.4.7.tgz","_integrity":"sha512-cm8AUDRj884MggYAkogUaqLyEPtrmwoZxTMbvFuvlV6wFp5N/BhkUNcaXUcgSvgbFnnb+PiYycdQrOs8ID+dZg==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@ungap/structured-clone":"^1.2.0","@fluidframework/core-interfaces":">=2.0.0-internal.7.4.7 <2.0.0-internal.7.5.0","@fluidframework/telemetry-utils":">=2.0.0-internal.7.4.7 <2.0.0-internal.7.5.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@types/ungap__structured-clone":"^1.2.0","@fluidframework/mocha-test-setup":">=2.0.0-internal.7.4.7 <2.0.0-internal.7.5.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.7.4.7_1707783785864_0.8149816459621508","host":"s3://npm-registry-packages"}},"2.0.0-internal.8.0.7":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.8.0.7","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.8.0.7","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"335107216f506de34286a463a0ced16f92ac277a","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.8.0.7.tgz","fileCount":43,"integrity":"sha512-2q3jYfgGIlQQKLDP5edFAZNf0zqxhKYDp35Pxc2wi+wrjFMraEgcniKXEObv7IRO31GcS2v6nexSgmks3VU3yg==","signatures":[{"sig":"MEYCIQCUKoNPuDD7qs8JCfS+A2/ddOUoGL4ZBM74nmMaBMiSJAIhAOysJcdahuObF1TS4UR/M1XxDlV8QeW9RZBe0pNvIPC+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189713},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.8.0.7.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.8.0.7.tgz","_integrity":"sha512-2q3jYfgGIlQQKLDP5edFAZNf0zqxhKYDp35Pxc2wi+wrjFMraEgcniKXEObv7IRO31GcS2v6nexSgmks3VU3yg==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@ungap/structured-clone":"^1.2.0","@fluidframework/core-interfaces":">=2.0.0-internal.8.0.7 <2.0.0-internal.8.1.0","@fluidframework/telemetry-utils":">=2.0.0-internal.8.0.7 <2.0.0-internal.8.1.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@types/ungap__structured-clone":"^1.2.0","@fluidframework/mocha-test-setup":">=2.0.0-internal.8.0.7 <2.0.0-internal.8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.8.0.7_1709146947946_0.10808290848694169","host":"s3://npm-registry-packages"}},"2.0.0-internal.8.0.8":{"name":"@fluid-experimental/app-insights-logger","version":"2.0.0-internal.8.0.8","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluid-experimental/app-insights-logger@2.0.0-internal.8.0.8","maintainers":[{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"dist":{"shasum":"ef3f1d8807c9562bbe254608015c84c80a30c20d","tarball":"https://registry.npmjs.org/@fluid-experimental/app-insights-logger/-/app-insights-logger-2.0.0-internal.8.0.8.tgz","fileCount":43,"integrity":"sha512-HCUj3foNmdknPdn9O1lOTsT4BjXXOdTLYcnX+/0bMVewAqtxi5unrb3ceQQdXu9P9DWwr5kGu00POONAjv7TUQ==","signatures":[{"sig":"MEYCIQDLG1vvS2AMbFxl6sn7t0biVMndaCeVJDjz1xEQT4DEZwIhAIBS3p6uSvOOIjDMKx0HQzFmLZz8cdmYWF9jnbMtYr3i","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189713},"main":"dist/index.js","_from":"file:fluid-experimental-app-insights-logger-2.0.0-internal.8.0.8.tgz","fluid":{"browser":{"umd":{"files":["dist/main.bundle.js"],"library":"main"}}},"types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluid-experimental/app-insights-logger\n\n## Overview\n\nThis `app-insights-logger` package provides a Fluid telemetry logger that will route Fluid telemetry to Azure App Insights using the `ApplicationInsights.trackEvent` API provided by the [@microsoft/applicationinsights-web](https://www.npmjs.com/package/@microsoft/applicationinsights-web) package. The logger is intended for use by browser based web applications, not NodeJS applications [as stated by the App Insights Web SDK.](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n## What is Application Insights?\n\nAt a high level, App Insights is an Azure cloud service for aggregating, visualizing, analyzing, and alerting on metrics related to a given “service” or “application”.\nYou create an App Insights Instance and then configure your applications to send data to your instance using either Azure provided SDK’s or REST APIs.\nThis could be general machine related health being automatically reported to the instance when you install a logging program on your service’s machines or custom metrics that you manually configure your applications to send. Keep in mind this logger is intended for use with browser based web applications, not pure nodeJS.\nIn our case, we are sending custom metrics. [Learn more about Azure App Insights with their docs](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview?tabs=net)\n\n<!-- AUTO-GENERATED-CONTENT:START (README_INSTALLATION_SECTION:includeHeading=TRUE&devDependency=FALSE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Installation\n\nTo get started, install the package by running the following command:\n\n```bash\nnpm i @fluid-experimental/app-insights-logger\n```\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n## Use case\n\nThe primary use case of sending telemetry to Azure App Insights allows users to analyze and store telemetry logs without having to manually setup complex infrastructure.\nOnce in App Insights users can leverage Azure's log exploring tools to analyze logs.\n\n## Usage\n\nIn order to use this logger, users will first have to initialize an `ApplicationInsights` client from the `@microsoft/applicationinsights-web` package. In most cases, initializing the `ApplicationInsights` client will be just providing your App Insight instances connection string AND calling `.loadAppInsights()` on your client. [Learn more about the App Insights SDK](https://github.com/microsoft/ApplicationInsights-JS#before-getting-started)\n\nHere is an example usage:\n\n```typescript\nconst appInsightsClient = new ApplicationInsights({\n\tconfig: {\n\t\tconnectionString:\n\t\t\t\"InstrumentationKey=abcdefgh-ijkl-mnop-qrst-uvwxyz6ffd9c;IngestionEndpoint=https://westus2-2.in.applicationinsights.azure.com/;LiveEndpoint=https://westus2.livediagnostics.monitor.azure.com/\",\n\t},\n});\n\n// Initializes the App Insights client. Without this, logs will not be sent to Azure.\nappInsightsClient.loadAppInsights();\n\nconst logger = new FluidAppInsightsLogger(appInsightsClient);\n\n// Example of sending an event to app insights using the FluidAppInsightsLogger directly\nlogger.send({ category: \"mockEvent\", eventName: \"mockEventName\" });\n\n// More commonly, we would provide the logger to the instance of the Fluid Loader used by your application. This enables Fluid telemetry to be automatically sent to App Insights as your Fluid App is running.\nconst tinyliciousClient = new TinyliciousClient({\n\tlogger,\n});\n\nconst createContainerResult = await tinyliciousClient.createContainer(containerSchema);\n```\n\n## Viewing Logs in App Insights\n\nFrom the Azure web portal, navigate to your app insights instance. Now, go to the \"Logs\" for your instance, this should be an option within the left side panel. Finally, from this page, you can query for telemetry events, which will be stored in the customEvents table. As an example, you can issue this simple query to get recent telemetry events sent to the customEvents table:\n\n-   Get a count of each distinct log event name and category of log event\n\n    ```\n    customEvents\n    | summarize count() by name, tostring(customDimensions.category)\n    ```\n\n-   Get all performance related logs\n\n    ```\n    customEvents\n    | where customDimensions.name == \"performance\"\n    ```\n\n<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n\n<!-- This section is automatically generated. To update it, make the appropriate changes to docs/md-magic.config.js or the embedded content, then run 'npm run build:md-magic' in the docs folder. -->\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Help\n\nNot finding what you're looking for in this README? Check out our [GitHub\nWiki](https://github.com/microsoft/FluidFramework/wiki) or [fluidframework.com](https://fluidframework.com/docs/).\n\nStill not finding what you're looking for? Please [file an\nissue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feature-Requests).\n\nThank you!\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Contribution Guidelines\n\nThere are many ways to [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid.\n\n-   Participate in Q&A in our [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).\n-   [Submit bugs](https://github.com/microsoft/FluidFramework/issues) and help us verify fixes as they are checked in.\n-   Review the [source code changes](https://github.com/microsoft/FluidFramework/pulls).\n-   [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).\n\nDetailed instructions for working in the repo can be found in the [Wiki](https://github.com/microsoft/FluidFramework/wiki).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\nUse of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n\n<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->\n\n<!-- prettier-ignore-start -->\n<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->\n\n## Trademark\n\nThis project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.\n\nUse of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n\n<!-- prettier-ignore-end -->\n\n<!-- AUTO-GENERATED-CONTENT:END -->\n","scripts":{"api":"fluid-build . --task api","tsc":"tsc","lint":"npm run prettier && npm run check:release-tags && npm run eslint","test":"npm run test:mocha","build":"fluid-build . --task build","clean":"rimraf --glob _api-extractor-temp coverage dist lib nyc \"**/*.tsbuildinfo\" \"**/*.build.log\"","eslint":"eslint src","format":"npm run prettier:fix","lint:fix":"npm run prettier:fix && npm run eslint:fix","prettier":"prettier --check . --cache --ignore-path ../../../../.prettierignore","build:docs":"fluid-build . --task api","eslint:fix":"eslint src --fix","test:mocha":"mocha --recursive \"dist/test/**/*.spec.js\" -r node_modules/@fluidframework/mocha-test-setup","build:esnext":"tsc --project ./tsconfig.esnext.json","prettier:fix":"prettier --write . --cache --ignore-path ../../../../.prettierignore","build:compile":"fluid-build . --task compile","ci:build:docs":"api-extractor run","build:commonjs":"fluid-build . --task commonjs","format-and-build":"npm run format && npm run build","check:release-tags":"api-extractor run --local --config ./api-extractor-lint.json","format-and-compile":"npm run format && npm run build:compile","test:mocha:verbose":"cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha","api-extractor:esnext":"copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib","api-extractor:commonjs":"api-extractor run --local"},"_npmUser":{"name":"ms-fluid-bot","email":"ffsa@microsoft.com"},"_resolved":"/mnt/vss/_work/1/pack/scoped/fluid-experimental-app-insights-logger-2.0.0-internal.8.0.8.tgz","_integrity":"sha512-HCUj3foNmdknPdn9O1lOTsT4BjXXOdTLYcnX+/0bMVewAqtxi5unrb3ceQQdXu9P9DWwr5kGu00POONAjv7TUQ==","fluidBuild":{"tasks":{"build:docs":{"script":false,"dependsOn":["...","api-extractor:commonjs","api-extractor:esnext"]}}},"repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"_npmVersion":"9.6.7","description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"@ungap/structured-clone":"^1.2.0","@fluidframework/core-interfaces":">=2.0.0-internal.8.0.8 <2.0.0-internal.8.1.0","@fluidframework/telemetry-utils":">=2.0.0-internal.8.0.8 <2.0.0-internal.8.1.0","@microsoft/applicationinsights-web":"^2.8.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","typeValidation":{"broken":{},"disabled":true},"devDependencies":{"mocha":"^10.2.0","sinon":"^7.4.2","tslib":"^1.10.0","eslint":"~8.50.0","rimraf":"^4.4.0","prettier":"~3.0.3","copyfiles":"^2.4.1","cross-env":"^7.0.3","typescript":"~5.1.6","@types/node":"^18.19.0","@types/mocha":"^9.1.1","@types/sinon":"^7.0.13","eslint-plugin-jest":"~27.4.2","eslint-plugin-react":"~7.33.2","eslint-config-prettier":"~9.0.0","@microsoft/api-extractor":"^7.38.3","eslint-plugin-react-hooks":"~4.6.0","@fluidframework/build-tools":"^0.28.0","@fluidframework/build-common":"^2.0.3","@types/ungap__structured-clone":"^1.2.0","@fluidframework/mocha-test-setup":">=2.0.0-internal.8.0.8 <2.0.0-internal.8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/app-insights-logger_2.0.0-internal.8.0.8_1710894363068_0.4403398452871088","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-11-16T22:28:27.497Z","modified":"2026-07-29T21:13:21.176Z","2.0.0-dev.7.3.0.211848":"2023-11-16T22:28:27.812Z","2.0.0-dev.7.3.0.212138":"2023-11-17T20:41:28.529Z","2.0.0-internal.7.3.0":"2023-11-17T21:22:33.898Z","2.0.0-dev.7.4.0.214930":"2023-11-28T23:41:32.290Z","2.0.0-dev.7.4.0.215366":"2023-11-29T23:08:43.578Z","2.0.0-dev.7.4.0.215747":"2023-11-30T17:33:39.992Z","2.0.0-dev.7.4.0.215930":"2023-11-30T20:44:07.863Z","2.0.0-dev.7.4.0.216897":"2023-12-01T21:47:09.176Z","2.0.0-dev.7.4.0.217212":"2023-12-02T18:11:53.338Z","2.0.0-dev.7.4.0.217884":"2023-12-05T19:56:35.517Z","2.0.0-dev.7.4.0.221926":"2023-12-13T00:49:32.056Z","2.0.0-internal.7.4.0":"2023-12-13T18:04:12.293Z","2.0.0-internal.8.0.0":"2023-12-14T03:27:42.689Z","2.0.0-internal.8.0.1":"2024-01-05T17:58:58.284Z","2.0.0-internal.8.0.2":"2024-01-10T22:32:36.403Z","2.0.0-internal.7.4.1":"2024-01-10T23:51:29.829Z","2.0.0-internal.7.4.2":"2024-01-16T20:01:19.419Z","2.0.0-internal.8.0.3":"2024-01-16T20:06:47.859Z","2.0.0-internal.7.4.3":"2024-01-18T23:05:53.472Z","2.0.0-internal.8.0.4":"2024-01-18T23:17:51.043Z","2.0.0-internal.7.4.4":"2024-02-06T19:04:00.242Z","2.0.0-internal.7.4.5":"2024-02-07T22:13:13.745Z","2.0.0-internal.7.4.6":"2024-02-08T00:58:54.893Z","2.0.0-internal.8.0.5":"2024-02-08T19:33:19.839Z","2.0.0-internal.8.0.6":"2024-02-13T00:15:36.137Z","2.0.0-internal.7.4.7":"2024-02-13T00:23:06.077Z","2.0.0-internal.8.0.7":"2024-02-28T19:02:28.139Z","2.0.0-internal.8.0.8":"2024-03-20T00:26:03.218Z"},"bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"author":{"name":"Microsoft and contributors"},"license":"MIT","homepage":"https://fluidframework.com","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git","directory":"packages/framework/client-logger/app-insights-logger"},"description":"Contains a Fluid logging client that sends telemetry events to Azure App Insights","maintainers":[{"email":"ffsa@microsoft.com","name":"ms-fluid-bot"},{"email":"microsoft-oss-publishing@microsoft.com","name":"microsoft-oss-releases"},{"email":"npmjs@microsoft.com","name":"microsoft1es"}],"readme":"","readmeFilename":""}