1DS C++ SDK
Перейти к файлу
Matthew Koscumb a5bd5a6ee3
Add noexcept annotation where applicable (#1244)
* NetworkDetector::RegisterAndListen does not throw exceptions, thus mark the method as noexcept.

* RequestHandler::RequestHandler does not throw exceptions, thus mark the constructor as noexcept.

* Constant intialization of member variables should be done using in-class initializers, not in the initializer-list.
2024-02-05 10:30:57 -08:00
.github Update .CODEOWNERS to contain 1ds-c-sdk-approver team. (#1219) 2023-10-12 09:54:54 -07:00
Solutions Update version to 3.8.XXX.1 for 2024. (#1236) 2024-01-25 13:28:27 -08:00
docker Add Docker File for RHEL 9 support. (#1135) 2023-04-22 18:55:21 -07:00
docs EUDB compliance recommendations and example (#1191) 2023-08-08 20:36:10 -07:00
examples Adding sample unit tests to SamplePackage example for swift wrapper to show case the usage w.r.t unit tests (#1220) 2023-10-13 16:27:33 -07:00
lib Add noexcept annotation where applicable (#1244) 2024-02-05 10:30:57 -08:00
sqlite Use O1 for sqlite MSVC release build (#922) 2021-09-02 14:46:53 +08:00
sqliteUWP Move to PlatformToolset variable (#882) 2021-05-27 16:41:16 -07:00
tests Add noexcept annotation where applicable (#1244) 2024-02-05 10:30:57 -08:00
third_party [Fix: 1081] upgrade googletest to v1.12.1 (#1082) 2023-01-06 15:56:51 -08:00
tools Add target .net 6 for the 1DS Test Server (#1217) 2023-10-06 09:23:52 +01:00
wrappers adding comment about using the typealised enums in swift (#1241) 2024-02-02 09:55:18 -08:00
zlib enable MultiProcessorCompilation to speed up compilation (#916) 2021-08-25 16:43:21 +08:00
.clang-format Adjust the style to be in alignment with what the rest of code is 2019-10-23 16:26:04 -07:00
.gitattributes License cleanup + license clean-up scripts: 2020-10-07 00:51:29 -07:00
.gitignore Update .gitignore with all *.ses 2020-09-24 17:37:40 -07:00
.gitmodules Remove krabsetw submodule commit (#1003) 2022-03-19 17:12:05 -07:00
.markdownlint.json Further repo cleanup for OSS: remove unnecessary details 2020-10-22 01:52:49 -07:00
.readthedocs.yaml fix (#999) 2022-04-05 09:52:20 -07:00
Android.bp Add Android.bp to support Android platform builds (#966) 2021-12-07 11:14:46 -08:00
CMakeLists.txt Adding Swift build for global build scripts and cmake (#1169) 2023-06-14 11:40:07 -07:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-02-10 11:51:15 -08:00
LICENSE License cleanup + license clean-up scripts: 2020-10-07 00:51:29 -07:00
README.md fix (#1112) 2023-03-08 23:36:24 -08:00
RunOACR.bat Some recent regression in GitHub actions (NOT our infra!!) is causing all of our Windows builds to fail. 2019-10-24 12:43:35 -07:00
SECURITY.md markdownlint cleanup 2020-10-22 01:54:19 -07:00
azure-pipelines.yml OSS clean-up: 2020-08-13 22:30:45 -07:00
build-Win32Debug.bat Project stopped building with MSBuild 16.10.0 (#883) 2021-05-28 09:10:18 -07:00
build-Win32Release.bat Project stopped building with MSBuild 16.10.0 (#883) 2021-05-28 09:10:18 -07:00
build-all-v142.bat Remove setup-buildtools.cmd from vs2019 loop ( since it hangs :-/ ) 2021-03-22 13:04:00 -07:00
build-all-v143.bat Add build script for vs2022 (#1041) 2022-07-21 13:24:18 -07:00
build-all.bat [Fix: 1081] upgrade googletest to v1.12.1 (#1082) 2023-01-06 15:56:51 -08:00
build-android.cmd Upgrade android libraries (#1103) 2023-05-04 13:15:49 +03:00
build-clang.sh Microsoft Applications Telemetry SDK for C/C++ - v3.2 (April 2019) 2019-04-02 15:03:34 -07:00
build-cmake-clang-vs2017.cmd Point back to latest lib/modules master 2020-08-17 10:59:11 -07:00
build-cmake-clang-vs2019.cmd Point back to latest lib/modules master 2020-08-17 10:59:11 -07:00
build-docker.cmd Update build-docker.cmd 2020-05-02 11:30:59 -07:00
build-docker.sh Update docker scripts for Linux (#64) 2019-08-24 10:04:26 -07:00
build-gtest.sh [Fix: 1081] upgrade googletest to v1.12.1 (#1082) 2023-01-06 15:56:51 -08:00
build-ios.sh ios simulator arm64 and arm64e support (#1086) 2023-01-27 23:43:03 -08:00
build-rhel.sh Microsoft Applications Telemetry SDK for C/C++ - v3.2 (April 2019) 2019-04-02 15:03:34 -07:00
build-tests-ios.sh Build gtest/gmock for iOS (#346) 2020-05-06 11:58:41 -07:00
build-tests.cmd [Fix: 1081] upgrade googletest to v1.12.1 (#1082) 2023-01-06 15:56:51 -08:00
build-tests.sh Use latest googletest for builds on macOS 11.0 or higher (#937) 2022-02-19 14:34:22 -08:00
build-win.ps1 Fix build scripts to support CntOS8 and Windows build with VS2019 (any) (#1006) 2022-04-05 20:25:50 -07:00
build-win10-compact.bat Project stopped building with MSBuild 16.10.0 (#883) 2021-05-28 09:10:18 -07:00
build-win10-min.bat Project stopped building with MSBuild 16.10.0 (#883) 2021-05-28 09:10:18 -07:00
build-x64Debug.bat Project stopped building with MSBuild 16.10.0 (#883) 2021-05-28 09:10:18 -07:00
build-x64Release.bat Project stopped building with MSBuild 16.10.0 (#883) 2021-05-28 09:10:18 -07:00
build-xamarin.sh Add missing methods and properties to obj-c wrapper with corresponding Xamarin bindings (#750) 2021-01-07 09:29:54 -08:00
build.sh Fix a syntax error in build.sh (#1205) 2023-09-11 11:10:21 -07:00
install.sh Verified the flow on Linux for static and shared library. Use new Google Test for Ubuntu 20.04 (old one no longer compiles) 2020-09-22 01:16:29 -07:00
mat-sdk.spec.in Update version for 2021 to v3.5 2021-01-19 14:09:52 -08:00
test-all.cmd Some recent regression in GitHub actions (NOT our infra!!) is causing all of our Windows builds to fail. 2019-10-24 12:43:35 -07:00

README.md

1DS C/C++ SDK

spellcheck

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

1DS (One Data Strategy), also known as One Observability, 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, Azure Monitor, and Visual Studio App Center. We aim to create a unified data collection, ingestion, pipeline, and set of tools for key scenarios for the entire company.

Collector++ is the externally-facing destination end-point where telemetry data is uploaded to that subsequently routes the data to Microsoft internal data pipeline.

Getting Started

The SDK is released as a source package every month, following the milestones. There is no plan to release prebuilt binaries.

Build

Platform specific build instructions:

Other resources to learn how to setup the build system:

  • Review how our cross-platform build system is implemented using GitHub Actions infrastructure.
  • Check the build scripts located in workspace root.

Build Environments

Operating System Compiler
Mac OS X 10.11.6 Clang Xcode 8.3
Mac OS X 10.12.6 Clang Xcode 9.0, 9.1
Mac OS X 10.13.3 Clang Xcode 9.2, 9.3, 10.0, 10.1
Raspbian GNU/Linux 8 (jessie) GCC 4.9.2 (armv7l)
Ubuntu 14.04.x LTS GCC 5.x.x
Ubuntu 16.04 LTS GCC 5.x.x, GCC 5.x.x (armv7l)
Ubuntu 18.04 LTS GCC 7.5.x
Windows 10 Android Studio/Gradle
Windows Server 2016 Visual Studio 2017 (vc141)
Windows Server 2019 Visual Studio 2019 (vc142)

Target Platforms

Target Platform Supported Covered by CI
Android
iOS 10+ (simulator)
iOS 10+ (arm64, arm64e)
Linux (x86, x64, arm, aarch64)
Mac OS X 10.11+
Mac OS X (latest)
Ubuntu 14.04.x LTS
Ubuntu 16.04.x LTS
Ubuntu 18.04.x LTS
Ubuntu 20.04.x LTS
Ubuntu (latest)
Windows 7.1
Windows 8.1
Windows 10.x
Windows Server 2012
Windows Server 2016
Windows Server 2019
  • Supported - these platforms are known to work well with the SDK in production.
  • Covered by CI - these platforms are tested as part of CI.

Test

There are two sets of tests available:

  • tests/unittests - unit tests that verify operation of each individual component.
  • tests/functests - functional tests that verify customer-facing APIs and features, they also cover the flow of data to Collector++.

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

Getting Support

Microsoft products using SDK may use GitHub issues as the communication channel for both feature requests and issues.

Note:

  • Please refer to the supported platforms, anything not in the list should be treated as a feature request.
  • Only C and C++ API surface is supported - any other language wrappers are provided as-is, and not supported.
  • Build issues are in general out of the support scope due to the unlimited number of build flags combinations.

Contributing

This project does not accept Public contributions at this time.

Microsoft-authorized contributors - please refer to contributing instructions here.

Versioning

This library follows Semantic Versioning.

License

By contributing to 1DS C++ SDK repository, you agree that your contributions will be licensed under Apache License 2.0.