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

Telemetry #381

Merged
merged 13 commits into from
Aug 26, 2015
Merged

Telemetry #381

merged 13 commits into from
Aug 26, 2015

Conversation

nareshjo
Copy link
Member

Open piece of NTVS telemetry which consumes private telemetry loggers

…f some datapoints.

This provides infrastructure for for adding concrete implementations for telemetry logger which will implement ITelemetryFactory.
…do some cleanup e.g. flushing data can do it.

Using $(VSTarget) token instead of hardcoded version numbers in telemetry project file
- renamed DefaultTelemetryLogger and factory to DummyTelemetryLogger ...
- some namespace sorting and tab/space alignment fixes
- made classes for telemetry constants static
- Removed all references to vslogger
- Added some overrides in Dapapointcollection to add items more conviniently
- some minor alignment/typo fixes
- Made Telemetry project anycpu and removed unnecessary items from it. set comvisible false for it
- Extracted code to set some common telemetry properties and logging of packageloaded event to a more common place so that it can be called from any package
- removed logging of project open/create as it is already covered by vs telemetry
using new approach to copy and reference private telemetry dlls
directly.
Updating nuget.exe to latest as that is required by latest stable app
insight nugets
@msftclas
Copy link

Hi @nareshjo, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!


It looks like you're a Microsoft contributor (Naresh Joshi). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

@@ -613,6 +615,8 @@
<Compile Include="SmartIndent.cs" />
<Compile Include="SmartIndentProvider.cs" />
<Compile Include="SourceMapping\SourceMap.cs" />
<Compile Include="Telemetry\TelemetryEvents.cs" />
<Compile Include="Telemetry\TelemetryProperties.cs" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If these files are going to be shared across projects, they should be included alongside the Telemetry dlls in Nodejs/Common, and then linked to from the individual projects.

@mousetraps
Copy link
Contributor

Left some comments and lgtm after that

Moved Telemetry events and properties classes to shared project and
marked them internal
Including app insights dlls in Dev11 and 12 only
Updated telemetry dlls
Fixed indentation
some other minor fixes
internal static class TelemetryEvents {
public const string ProjectImported = "ProjectImported";
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant to move this to Nodejs/Common, not Common/* alongside the rest of the dlls.

Again, Common/* are shared components with Python Tools, and pretty much anyone who's forked us.

Nodejs/Common/* are shared components within the Nodejs product that we can reference from different NTVS projects.

@mousetraps
Copy link
Contributor

lgtm after the above comment about location is addressed.

@mousetraps
Copy link
Contributor

👍

@mousetraps
Copy link
Contributor

Hey, I spent some time debugging the signed binary issue... The problem is that the new telemetry binary was not getting copied to $unsigned_msis because the _CopyOutputsToPath target only copies files based on the project being built. In order to fix this, we can add the following copy task to the _CopyOutputsToPath target in Build/Common.Build.targets

<Copy SourceFiles="@(OutputBinariesToSign -> '$(OutputPath)%(filename)%(extension)')"
      DestinationFolder="$(CopyOutputsToPath)UnsignedBinaries"
      Condition="'@(OutputBinaries)' != ''"/>

Then in the project file, you can define the following item collection to ensure the dll is copied to the right location for signing.

<OutputBinariesToSign Include="Microsoft.NodejsTools.Telemetry.$(VSTarget).dll;SomeOtherAssembly.dll" />

cc @sanyamc-msft since this'll also apply to your PR.

@sanyamc-msft
Copy link
Contributor

Thanks! I added the above copy steps to my PR and pushed the changes for review. Need to test it again on build machine.

@mousetraps
Copy link
Contributor

👍

Does everything appear to be functional on the build machine now? If so, this is ready to be merged in.

@nareshjo
Copy link
Member Author

Yes everything is working as expected in my tests using signed installer. Mergining in

@nareshjo
Copy link
Member Author

It seems I don't have permission to merge. Could you please do that.

mousetraps added a commit that referenced this pull request Aug 26, 2015
First set of telemetry infrastructure changes
@mousetraps mousetraps merged commit f1e4aae into microsoft:master Aug 26, 2015
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.

4 participants