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

If iKey is provided only in telemetry item context this item is dropped #34

Closed
abaranch opened this issue Aug 24, 2015 · 7 comments
Closed

Comments

@abaranch
Copy link
Contributor

TelemetryClient checks iKey in its own Context and configuration. If it is empty in both places item is dropped. But telemetry item may have instrumentation key defined on the item level which should be checked as well.

@SergeyKanzhelev
Copy link
Contributor

I believe it is an optimization. In case when iKey was not set for win store application - we will not try to access Context property of an item and will not construct it. @JakubOleksy, is it actually by design or not?

@JakubOleksy
Copy link
Contributor

Correct, we need a way to quickly stop processing when iKey is not set and have minimum impact on the application.

@abaranch
Copy link
Contributor Author

If that is by design instrumentation key should be removed from the telemetry item.

@SergeyKanzhelev
Copy link
Contributor

I was thinking that since it's all internal - we can have internal method to check whether Context was initialized on telemetry item. If so - checking instrumentation key on telemetry item would be fast. If not - do not check it since it clearly wasn't set

@JakubOleksy
Copy link
Contributor

We probably don't need to make it even settable at an item level. I am not sure the scenario that would require that.

@SergeyKanzhelev
Copy link
Contributor

Hm, I took a look and it seems that my information is outdated. Now context being instantiated in constructors of telemetry items. See ExceptionTelemetry.cs#L32 as an example. So it looks like a simple bug

@SergeyKanzhelev
Copy link
Contributor

@JakubOleksy , typical scenario is to split auto-collected data into different instrumentation keys to protect critical data from being throttled because of high volume non-important events. Examples are sending performance counters to a separate iKey or re-route verbose traces. We recommended this approach (telemetry initializer that overrides iKey) to somebody for exactly this reason.

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

No branches or pull requests

3 participants