Skip to content

Latest commit

 

History

3,401 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

New customer?

  • The 1DS C/C++ SDK is designed for Microsoft products to send data to public-facing end-points which route to Microsoft's internal data pipeline. It is not meant to be used outside of Microsoft products and is open-sourced to demonstrate best practices and to be transparent about what is being collected.

  • Users with Microsoft Organization GH account, please refer to the link here for internal community discussion channels.

Need support?

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

Want to Contribute?

  • This project does not accept Public contributions at this time.

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

  • Repository maintainers and engineers making substantial changes should start with the maintainer onboarding guide for the documentation reading order, local build and validation matrix, PR checklist, and release process.

Release policy:

The SDK's primary release artifact is a source package, published on an as-needed basis. A preliminary Swift Package Manager packaging flow is designed to distribute a prebuilt Apple xcframework; see the Apple packaging guide for its current status and available slices.

Build

Platform specific build instructions:

Standard configure/build presets are listed with cmake --list-presets. build.sh, build-ios.sh, and build-cmake.ps1 are thin compatibility wrappers around those presets. Presets require CMake 3.21+; direct CMake builds retain the project's CMake 3.15 floor.

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
macOS 10.15+ Clang Xcode 12.0+
Ubuntu 20.04 LTS GCC 9.x.x
Ubuntu 22.04 LTS GCC 11.x.x
Windows 10 Android Studio/Gradle 8.5, Java 17
Windows Server 2016 Visual Studio 2017 (vc141)
Windows Server 2022 Visual Studio 2022 (vc143)

Target Platforms

Target Platform Supported Covered by CI
Android (API 23+) ✅ ✅
iOS 12+ (simulator) ✅ ✅
iOS 12+ (arm64, arm64e) ✅
Linux (x86, x64, arm, aarch64) ✅
macOS 10.15+ ✅
macOS (latest) ✅ ✅
Ubuntu 20.04.x LTS ✅ ✅
Ubuntu 22.04.x LTS ✅ ✅
Ubuntu (latest) ✅ ✅
Windows 10.x ✅
Windows 11 ✅
Windows Server 2016 ✅
Windows Server 2019 ✅
Windows Server 2022 ✅ ✅
  • Supported - these platforms are known to work well with the SDK in production.
  • Covered by CI - these platforms are tested as part of CI.
  • Windows 7, Windows 8, and Windows 8.1 are not supported. Windows desktop builds target the Windows 10 API floor in CI.
  • For iOS simulator, CI covers representative supported simulator configurations on the current macOS runner images rather than every supported iOS 12+ runtime.
  • The Swift Package Manager xcframework includes preliminary Mac Catalyst 14+ and visionOS 1+ device and simulator slices. These targets have received limited validation and are not currently covered by regular CI. Evaluate them for your scenario before production use.

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.

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.

Versioning

See the release and version strategy and the maintainer release checklist.

License

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

Releases

Packages

Used by

Contributors

Languages