1DS C++ SDK
Перейти к файлу
Max Golovanov d4b98b82c4 Merged PR 1102985: Debug callback that allows to inspect CsRecord + C API surface bugfix
MS Edge team relies on UTC transport for Released final product on Windows 10. There is currently no debug callback that allows to inspect each individual event contents prior to event being sent to UTC. The ask is to add a new debug callback type that allows to inspect individual event contents in a human-readable format, e.g. JSON view. Note that this debug callback may show only preliminary event contents, i.e. event fields prior to event being further enriched with certain Part A/B props by system-level Universal Telemetry Client service.

While adding the new callback example for both C and C++ API surface, including BVT Test / Functional Test for C API, I identified a couple (relatively minor) issues with C API surface:
- double type is not properly passed when mat.h header is included from C++ module
- guid type is not parsed properly when passed via C API

I resolved these two issues as well, plus added functional tests for C API to verify the flow using the new callback to inspect event contents.
2019-07-10 04:37:15 +00:00
Solutions Merged PR 1093958: Allow more "common properties" be passed / set via C API 2019-06-27 04:22:58 +00:00
docker Merged PR 1045143: Initial implementation of the build system that uses docker for various Linux distros 2019-05-22 22:57:00 +00:00
docs Merged PR 1065459: Add custom build instructions 2019-05-31 21:59:44 +00:00
examples Housekeeping (no code change): move UTC example to private git submodule location 2019-06-24 14:49:59 -07:00
googletest Merged PR 904184: Start building functional and unit tests for clang on Windows and Mac 2019-02-01 09:08:09 +00:00
lib Fix gcc-linux build . Also with today's C++11 macro magic - we can't use std::make_unique on arrays since it's a C++14 feature not available in gcc-5.4.0 on Ubuntu LTS 16.04. Had to remove auto outbuffer = std::make_unique<char[]>(outbufferSize); in AriaDecoderV3 and replace it by buff = new char[] and delete[] buff 2019-07-09 16:32:45 -07:00
private List of changes: 2019-07-02 12:15:04 -07:00
sqlite Disable /permissive-, there's an inconsistent build behavior between the loop and local machines. 2019-01-04 10:58:17 -08:00
sqliteUWP Merged PR 883086: Lightweight SDK for embedding in installer packages 2019-03-08 05:24:15 +00:00
tests Fix gcc-linux build . Also with today's C++11 macro magic - we can't use std::make_unique on arrays since it's a C++14 feature not available in gcc-5.4.0 on Ubuntu LTS 16.04. Had to remove auto outbuffer = std::make_unique<char[]>(outbufferSize); in AriaDecoderV3 and replace it by buff = new char[] and delete[] buff 2019-07-09 16:32:45 -07:00
tools Merged PR 1045143: Initial implementation of the build system that uses docker for various Linux distros 2019-05-22 22:57:00 +00:00
wrappers Merged PR 1051926: Objective C wrapper 2019-05-29 00:49:26 +00:00
zlib Disable /permissive-, there's an inconsistent build behavior between the loop and local machines. 2019-01-04 10:58:17 -08:00
.gitattributes Pushing NewCPP to a new Master Branch, check out old repo for history 2017-05-10 10:29:11 -07:00
.gitignore Version.hpp 2019-04-18 16:17:02 -07:00
.gitmodules Add Bond Decoder tests to FunctTests and add Fiddler inspector source from dev tools to main repo 2019-03-29 14:50:01 -07:00
CHANGELOG.md Addressing code review comments and suggestions 2019-04-01 13:34:51 -07:00
CMakeLists.txt Merged PR 1045143: Initial implementation of the build system that uses docker for various Linux distros 2019-05-22 22:57:00 +00:00
CONTRIBUTING.md Updated CONTRIBUTING.md 2019-02-21 19:23:41 +00:00
LICENSE Build infra clean-up: 2019-04-04 12:01:27 -07:00
README.md Build infra clean-up: 2019-04-04 12:01:27 -07:00
RunOACR.bat Drafts for v3 2018-03-30 17:05:05 -07:00
azure-pipelines.yml Merged PR 935910: Kill switch feature, proper offline storage trim logic and tests 2019-02-26 00:00:36 +00:00
build-Win32Debug.bat Make the build-*.bat scripts break after a failed build. 2019-04-05 16:12:28 -07:00
build-Win32Release.bat Make the build-*.bat scripts break after a failed build. 2019-04-05 16:12:28 -07:00
build-all.bat Build script change and example how to exclude sqlite from Win10 DLL build for Outlook / Windows Mail in UTC mode 2019-04-04 15:30:42 -07:00
build-clang.sh Merged PR 817004: Mac OS X clang compiler support 2018-11-07 06:39:27 +00:00
build-cmake-clang.cmd Fix clang on Windows build loop 2019-04-16 14:50:42 -07:00
build-docker.cmd Merged PR 1045143: Initial implementation of the build system that uses docker for various Linux distros 2019-05-22 22:57:00 +00:00
build-gtest.sh Merged PR 1086962: Samples and build scripts clean-up 2019-06-19 21:34:04 +00:00
build-rhel.sh Add RHEL and CentOS 7 support 2018-09-06 18:07:01 -04:00
build-win10-compact.bat Build script change and example how to exclude sqlite from Win10 DLL build for Outlook / Windows Mail in UTC mode 2019-04-04 15:30:42 -07:00
build-x64Debug.bat Make the build-*.bat scripts break after a failed build. 2019-04-05 16:12:28 -07:00
build-x64Release.bat Make the build-*.bat scripts break after a failed build. 2019-04-05 16:12:28 -07:00
build.sh Merged PR 1086962: Samples and build scripts clean-up 2019-06-19 21:34:04 +00:00
install.sh GitHub clean-up drafts 2019-03-28 16:40:31 -07:00
mat-sdk.spec.in MAT 1DS C++ SDK v3.2.112.1 + build infra clean-up (no code functional changes) 2019-04-22 15:14:38 -07:00
owners.txt Update the documents for inner source readiness 2019-02-20 14:07:01 -08:00
test-all.cmd Merged PR 799323: Stats improvements, tests + fixes for recent OTEL issues discovered in dogfood 2018-10-16 05:01:28 +00:00

README.md

ArtifactType Documentation Language Platform Stackoverflow Tags ms.reviewedAt ms.reviewedBy
nupkg, zip https://1dsdocs.azurewebsites.net C, C++, C++11, GoLang Windows, UWP, Mac OS X, Linux N/A 1DS,telemetry,C,C++,data ingestion,events 04/04/2019 maxgolov

Microsoft Applications Telemetry C/C++ SDK

Microsoft Applications Telemetry C/C++ SDK enables cross-platform telemetry collection from various Microsoft products. It enables data / telemetry upload to 1DS Collector++.

Data/Telemetry

This project collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement to learn more.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

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.

Please read our CONTRIBUTING.md which outlines all of our policies, procedures, and requirements for contributing to this project.

What is 1DS and Collector++?

One Data Strategy (1DS) is a cross-org initiative with five teams across the company coming together to unify multiple telemetry efforts at Microsoft. This includes the teams that built Asimov, Aria, Shared Data Platform, Geneva, OMS, App Insights, and Visual Studio App Center. We aim to create a unified data production, collection, and set of tools for key scenarios for the entire company. Collector++ is the externally-facing destination end-point where data/telemetry is uploaded to that subsequently routes the data to Microsoft internal data pipeline.

 We need a data culture where every engineer, every day, is looking at the usage data, learning from that usage data,
 questioning what new things to test out with our products, and being on that improvement cycle which is the lifeblood
 of Microsoft...
         -- Satya Nadella

Running the tests

There are two sets of tests available:

  • 'tests/functests' - functional tests that verify customer-facing APIs and Features
  • 'tests/unittests' - internal unit tests that verify operation of each individual component

These tests use Google Test / Google Mock framework and get built alongside with SDK. Launch 'functests' and 'unittests' binary executables to capture the test results.

End-to-end tests

'functests' include several E2E tests that verify the flow of data to Collector++.

Unit tests

'unittests' cover various internal component tests, such as LogManager, ILogger, HTTP uploader, IStorage, etc.

Deployment

SDK is integrated as a static or dynamic library runing in-proc within your executable on Windows, Linux and Mac.

Built With

We support building SDK on:

  • Windows with Visual Studio 2017
  • Windows with cmake + llvm-clang compiler
  • Linux with gcc
  • Mac OS X with cmake and XCode standard clang compiler

Contributing

Please read our CONTRIBUTING.md which outlines all of our policies, procedures, and requirements for contributing to this project.

Versioning and changelog

We use SemVer for versioning.

For the versions available, see the tags on this repository.

Authors

Project authors and contributors:

Please refer to owners.txt file.

License

Please see the LICENSE file for details.

Acknowledgments

We appreciate our long-term strategic partnership with Microsoft Office, Microsoft OneDrive, Microsoft Edge (Anaheim), Microsoft Information Protection SDK, Cortana, Speech Services SDK, OneNote and many other of our customers.