1
0
Форкнуть 0
ASP.NET Core web applications monitoring
Перейти к файлу
Cijo Thomas bca3e293f2
Merge branch 'master' into develop
2018-07-30 16:05:15 -07:00
.github PR template change 2018-02-05 12:37:46 -08:00
.vsts fix typo in yml 2017-12-22 11:52:31 -08:00
Schema Enable ServerTelemetryChannel in .net core by the default (#530) 2017-09-25 10:37:09 -07:00
keys Tilee/test signing (#689) 2018-05-16 13:31:48 -07:00
src/Microsoft.ApplicationInsights.AspNetCore Bump version to beta4 2018-07-30 15:39:06 -07:00
test Cleanup after requests collection tests (#724) 2018-07-23 19:15:27 -07:00
.gitattributes Update to RC2 along with the renaming of dependencies, Renaming To AspNetCore and Change the runtime to CLI 2016-03-17 13:21:03 -07:00
.gitignore Gitignore 2017-12-22 13:57:10 -08:00
ApplicationInsights.AspNetCore.sln Updated project names to easily filter 20 vs 11 tests. 2017-12-21 11:18:35 -08:00
CHANGELOG.md Generate W3C-compatible operation id if there is no request-id header (#722) 2018-07-23 14:43:27 -07:00
CleanPackages.ps1 Updating scripts and retaining old scripts 2016-05-06 11:30:54 -07:00
CleanPackagesCore.ps1 Updating scripts and retaining old scripts 2016-05-06 11:30:54 -07:00
Common.targets removed additional white spaces 2015-07-06 09:15:38 -07:00
GenerateReleaseMetadata.ps1 release metadata 2018-04-11 14:29:45 -07:00
LICENSE Initial commit 2015-03-17 12:39:40 -07:00
Microsoft-Security-Recommended.ruleset Added code analysis. 2016-08-15 10:14:40 -07:00
NuGet.config Populate NodeName + logic for Azure Web Apps 2016-11-04 09:51:08 -07:00
NuGet.exe Added EmptyApp20 and FunctionalTestUtils20 2017-08-31 13:22:56 -07:00
Readme.md fix product name 2018-06-14 23:31:15 -07:00
RunTests.cmd Added intermediateoutput path to all projects without which 2.0 CLI had issues building. Also aded scripts to run builds and tests. 2017-11-21 13:28:12 -08:00
RunTestsCore.ps1 Return to root solution dir after tests are executed (#406) 2017-04-26 00:52:31 -07:00
SetEnv.targets Marked the analyzers for build only and not NuGet packaging. Rev'ed versioning. 2016-09-28 16:10:26 -07:00
Signing.props Tilee/test signing (#689) 2018-05-16 13:31:48 -07:00
ThirdPartyNotices.txt Removing unused external test dependencies and adding third party notice 2016-09-01 16:59:07 -07:00
build.ps1 Making properties automatic and changing the build definition to release 2016-05-09 12:30:44 -07:00
buildDebug.cmd Added intermediateoutput path to all projects without which 2.0 CLI had issues building. Also aded scripts to run builds and tests. 2017-11-21 13:28:12 -08:00
buildRelease.cmd Added intermediateoutput path to all projects without which 2.0 CLI had issues building. Also aded scripts to run builds and tests. 2017-11-21 13:28:12 -08:00
clean.cmd Modified clean.cmd 2017-07-13 17:35:53 -07:00
dirs.proj Tilee/test signing (#689) 2018-05-16 13:31:48 -07:00
disablestrongnamevalidation.ps1 Remove signing from test projects 2018-02-05 11:38:57 -08:00
enablestrongnamevalidation.ps1 Remove signing from test projects 2018-02-05 11:38:57 -08:00
findMsBuild.cmd latest dotnet cli sdk. fix local test run scripts 2018-02-05 13:39:43 -08:00

Readme.md

NuGet packages

Microsoft Application Insights for ASP.NET Core applications

This repository has a code for Application Insights monitoring of ASP.NET Core applications. Read about contribution policies on Application Insights Home repository

Getting Started

Application Insights monitoring is a service that allows you to collect monitoring and diagnostics information about your application. The getting started guide shows how you can onboard your ASP.NET Core web application to use the Application Insights SDK.

Application Insights collects a lot of information out-of-the-box such as requests, dependencies, exceptions, and usage. It also allows you to configure additional data collection. The configure guide demonstrates the most common tasks you may want to do.

Repository structure

root\
    ApplicationInsights.AspNetCore.sln - Main Solution

    src\
        ApplicationInsights.AspNetCore - Application Insights package

    test\
        ApplicationInsights.AspNetCore.Tests - Unit tests
        FunctionalTestUtils - Test utilities for functional tests
        MVCFramework.FunctionalTests - functional tests for MVC application targetting NetCore1.1,NetCore2.0 and NET45
        WebApi.FunctionalTests - functional tests for Web API application targetting NetCore1.1,NetCore2.0 and NET45
		EmptyApp.FunctionalTests - functional tests for an Empty application targetting NetCore1.1,NetCore2.0 and NET45
        PerfTest - performance test

Developing

To successfully build the sources on your machine, make sure you've installed the following prerequisites:

Building

Once you've installed the prerequisites execute buildDebug.cmd or buildRelease.cmd script in the repository root to build the project locally. You can also open the solution in Visual Studio and build the ApplicationInsights.AspNetCore.sln solution directly.

Testing/Debugging

Execute the RunTests.cmd script in the repository root.

You can also open the solution in Visual Studio and run tests directly from Visual Studio Test Explorer. However, as the tests has multiple targets, Test Explorer only shows the first target from in .csproj. To debug/run tests from a particular TargetFramework with Visual Studio, only option is to re-arrange the such that the intented target comes first. This is a Visual Studio limitation and is likely removed in the future.

Running and writing tests

There are two sets of tests unit tests and functional tests. Please use unit tests for all features testing. The purpose of functional tests is just end-to-end validation of functionality on sample applications.

Functional tests Functional tests are regular web applications with unit tests integrated into them. Application can be compiled as a regular web application as well as set of tests. Typical functional tests will do the following:

  1. Host the current project in In-Proc server.
  2. Initialize application insights telemetry channel.
  3. Initiate request to self hosted web application using HttpClient.
  4. Check data received in telemetry channel.

The following are modifications made to a regular web application to make it work this way:

Add dependencies to .csproj:

"FunctionalTestUtils": "1.0.0-*",
"dotnet.test.xunit": "1.0.0-*",
"xunit": "2.1.0"

and test command:

"test": "xunit"

Add this initialization logic to Startup.cs:

services.AddFunctionalTestTelemetryChannel();

Branches

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.