Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding diagnostic-channel #235

Merged
merged 6 commits into from
May 9, 2017

Conversation

MSLaguana
Copy link
Member

By using diagnostic-channel and diagnostic-channel-publishers, we can support context tracking through third-party libraries as well as getting additional telemetry for those dependencies.

By using diagnostic-channel and diagnostic-channel-publishers, we can support context tracking through third-party libraries as well as getting additional telemetry for those dependencies.
@MSLaguana MSLaguana force-pushed the addDiagnosticChannel branch from f2f34cb to 99bcf68 Compare May 5, 2017 17:39
@OsvaldoRosado
Copy link
Member

I think we should turn dependency correlation on by default with this, especially now that we have sampling to address the previous concern over data rate. The fundamental correlation bits (zone.js) have been present since the last version with no complaints. Are there any concerns with this? @KamilSzostak @AlexBulankou @SergeyKanzhelev @joshgav

@joshgav
Copy link
Contributor

joshgav commented May 5, 2017

@OsvaldoRosado enabling by default would make sense for users. Was the reason for not enabling by default originally only to gain confidence in the functionality? Is there a perf cost?

As an aside, we should be sure to distinguish between:

  • context restoration across async calls within a process (e.g. with Zone.js)
  • event correlation across service/process boundaries (e.g. with HTTP headers)

@OsvaldoRosado
Copy link
Member

@joshgav Distinguishing is important. Here I'm speaking specifically about context restoration across async calls. HTTP Header based cross-process correlation is already working by default IIRC.

This was indeed originally not enabled by default to gain confidence in the feature. I don't have hard numbers of perf cost since we don't have a robust performance measurement setup yet for this SDK like we do for .NET

@KamilSzostak
Copy link

IMHO we should enable dependency correlation by default. It's beneficial to a user even if there is potentially a small perf cost. @OsvaldoRosado did you enable it for Breeze, have we noticed any perf impact?

@KamilSzostak
Copy link

KamilSzostak commented May 8, 2017

Could you also update a README file and describe the functionality, e.g. list all available diagnostic-channels, how to enable, disable.

Please don't forget to add your changes on top of #222.

@OsvaldoRosado
Copy link
Member

@KamilSzostak I didn't get a chance to enable it for breeze outside of on my own box. It worked fine on my box 😛

@MSLaguana MSLaguana force-pushed the addDiagnosticChannel branch from 131405c to 46ca216 Compare May 9, 2017 17:01
@OsvaldoRosado OsvaldoRosado merged commit 68f24bb into microsoft:develop May 9, 2017
@MSLaguana MSLaguana deleted the addDiagnosticChannel branch May 9, 2017 22:07
@KamilSzostak KamilSzostak added this to the 0.20.0 milestone May 10, 2017
OsvaldoRosado added a commit that referenced this pull request May 10, 2017
* Add build script command

* Adds schema and typescript files to npmignore

* Add tagOverrides and contextObjects (#210)

* Add tagOverrides and contextObjects

Also updated documentation. Yes, it's 1 commit. Yes, I'm a terrible person for doing that.

* Add contextObject + formatting

* Fix CORS error when using library with browserify

Fixes an obscure problem when trying to use the ApplicationInsights node.js library with a browserify application.

* Add missing docs (#218)

* Update cross component dependency type (#219)

* migrate from typings to @types (#221)

* Add sampling support (#217)

* Add sampling support

* Fix test failure

* Update readme

* Fix race condition in readme example

* Fix build error from typings changes

* update package install and build scripts (#224)

* update package install and build scripts

* Adds a prepare script to replace the prepublish script for `npm install`
in npm@5+.
* Built artifacts from tsc are aggregated and stored in ./out for easier
workspace management.
* New test case which isn't transpiled by tsc to test some scenarios.
Includes a test for loading the transpiled module.

PR-URL:
Reviewed-By:
Reviewed-By:

* fixup! update package install and build scripts

* edits to comments in applicationinsights.ts (#223)

* edits to comments

* fixup! edits to comments

* Use autogenerated schemas (#228)

* Update BOND schema, update generated typescript with new comment generation

* Update autogenerated schemas. Migrate project to only use autogenerated schema classes

* Fix build errors

* Address PR feedback

* Add missing metric

* Change metric names to be in line with .NET SDK for common metrics

* Fix broken percentage units in performance counters

* pick up generated Declaration submodule (#232)

* Set the host app version to the context tags. #183 (#233)

* Sets version to the context tags

* No Readme changes

* Correct unit test

* Update Client.ts

Typo on the comment solved and switched the method name from setVersion to overrideApplicationVersion.

* Update Client.tests.ts

I apologize for the inconvenience, unit test corrected.

* Updating how cross-application correlations are tracked (#231)

* Updating how cross-application correlations are tracked

Instead of using a hash of the instrumentation key we now use the appId, matching the .NET sdk.
We also use different headers to match the .NET sdk.

* Updating to only issue appId requests once per ikey

* Exposing profileQueryEndpoint property

Allows for the appId query target to be configured separately to the telemetry endpoint.
It may be specified either by the APPINSIGHTS_PROFILE_QUERY_ENDPOINT environment variable,
or explicitly via client.config.profileQueryEndpoint. Note that it must be set synchronously
with the creation of the Config otherwise the value will not be used.

* Allowing appId lookups to be cancelled if a new endpoint is specified

* Adding operationId to outbound HTTP headers

* Provide access to contracts (#234)

* Provide access to contracts

* Test for access to contracts

* Change access to Contracts from Client.ts to applicationinsights.ts

* Fix baseTypes (#236)

* update README

* address Alex's feedback

* Fixing CorrelationId

There was a typo which lead to the `correlationIdPrefix` being null.

* Adding diagnostic-channel (#235)

* Adding diagnostic-channel

By using diagnostic-channel and diagnostic-channel-publishers, we can support context tracking through third-party libraries as well as getting additional telemetry for those dependencies.

* Fixing cyclical reference and supporting multiple AI clients in diagnostic-channel subscribers

* Updating readme with diagnostic-channel information

* Update Readme (#238)

* Enable automatic correlation by default (#239)

* Include typescript definitions in NPM package (#240)

* Update package.json to 0.20 (#241)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants