Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
ef80f64
Start of tracing prototype
LarryOsterman Apr 11, 2022
404b3e4
Created initial implementation of azure-core-opentelemetry package
LarryOsterman Apr 15, 2022
c286c64
CI pipeline fixes
LarryOsterman Apr 15, 2022
a00d8e2
Virtual dtor for AttributeSet class
LarryOsterman Apr 15, 2022
bba338e
clang-format
LarryOsterman Apr 15, 2022
b383ede
Renamed Options::SpanKind to avoid conflict with enumeration
LarryOsterman Apr 15, 2022
46030eb
Suppress OTel warnings
LarryOsterman Apr 15, 2022
415cc14
More OTel warning suppression
LarryOsterman Apr 15, 2022
0485a71
More OTel warning suppression
LarryOsterman Apr 15, 2022
62b1e02
More OTel warnings; fixed size_t comparison
LarryOsterman Apr 15, 2022
5cf8f49
Enable static CRT for -static builds in pipeline; make uwp builds use…
LarryOsterman Apr 15, 2022
8b8e5f9
Undid version baseline change because it broke CI pipeline
LarryOsterman Apr 15, 2022
c54e85e
Added default triplet for UWP x86 builds; fixed compiler warning; mes…
LarryOsterman Apr 15, 2022
a65c6b8
uwp-xxx-static doesn't exist as a valid triplet :(
LarryOsterman Apr 15, 2022
92e6ca3
New version of enabling MSVCRT Lib for static configs
LarryOsterman Apr 15, 2022
626f921
Attempt to add OpenTelemetry tests to build
LarryOsterman Apr 16, 2022
9ee3912
Added -DMSVC to list of spelling errors :(
LarryOsterman Apr 16, 2022
215aeec
Removed unnecessary sdk_config.h workaround; set opentelemetry versio…
LarryOsterman Apr 18, 2022
ae63b7c
Disable OpenTelemetry implementation on UWP builds because they requi…
LarryOsterman Apr 18, 2022
9224edd
Take a dependency on OpenTelemetry version 1.3
LarryOsterman Apr 18, 2022
301e1b9
Different version of disable OpenTelemetry implemetnation
LarryOsterman Apr 18, 2022
e24afcf
Spelling errors; removed version checks in vcpkg.json
LarryOsterman Apr 18, 2022
f78be44
Remove otel dependency on uwp builds
LarryOsterman Apr 18, 2022
bcf12e1
Require OpenTelemetry 1.3; Updated vcpkg baseline commit to include o…
LarryOsterman Apr 18, 2022
798a06b
Added description of vcpkg clone step
LarryOsterman Apr 18, 2022
fafd32d
Pin version numbers for packages
LarryOsterman Apr 18, 2022
f2d9368
Updated libxml2 version
LarryOsterman Apr 18, 2022
3086c19
clang compile fix
LarryOsterman Apr 18, 2022
dfacaec
Strongly type int64 vaues
LarryOsterman Apr 18, 2022
13ff042
More type strictness changes; clang-format
LarryOsterman Apr 18, 2022
9cba8df
Removed hard version artifacts in vcpkg.json file
LarryOsterman Apr 18, 2022
8316472
Cleaned up diff a bit
LarryOsterman Apr 18, 2022
90942ef
Cleaned up diff a bit
LarryOsterman Apr 18, 2022
08ad073
Added implementation for AddEvent;
LarryOsterman Apr 19, 2022
3f99f37
doccomment; clang-format
LarryOsterman Apr 19, 2022
1637049
Added changelog, readme, license notice, etc to OpenTelemetry
LarryOsterman Apr 19, 2022
fa21b79
clang-format
LarryOsterman Apr 19, 2022
ed4b8f5
Explicitly set span hierarchy instead of implicitly setting it
LarryOsterman Apr 20, 2022
d476083
Improved documentation for CreateSpan.
LarryOsterman Apr 20, 2022
2506d2e
curl_format
LarryOsterman Apr 20, 2022
484ef98
First steps in integrating tracing with client
LarryOsterman Apr 20, 2022
812777f
API Review feedback
LarryOsterman Apr 20, 2022
ef066c7
Merge branch 'main' into larryo/tracingprototype
LarryOsterman Apr 22, 2022
78ca933
Checkpoint
LarryOsterman May 3, 2022
e5f3827
Merge branch 'main' into larryo/tracingprototype
LarryOsterman May 3, 2022
bd320e1
Added service API level tracing support
LarryOsterman May 4, 2022
f7af413
Initial service client test implementation
LarryOsterman May 4, 2022
50aec0e
Initial service client test implementation
LarryOsterman May 4, 2022
3c296d5
Added throwing client method
LarryOsterman May 5, 2022
837774b
Merge branch 'main' into larryo/tracingprototype
LarryOsterman May 5, 2022
715f999
CI fix
LarryOsterman May 5, 2022
1fbee85
Added missing rethrow
LarryOsterman May 5, 2022
43c3845
clang-format
LarryOsterman May 5, 2022
1e74d8d
Added unit tests in core for new core classes
LarryOsterman May 5, 2022
11df8cd
Removed some comments that upset clang
LarryOsterman May 5, 2022
7f5abc4
Made destructor of virtual class virtual
LarryOsterman May 5, 2022
3415487
Created service_tracing tests to close code coverage gaps
LarryOsterman May 5, 2022
a358f4a
Merge branch 'main' into larryo/tracingprototype
LarryOsterman May 9, 2022
e710e75
Moved most of the API implementation for distributed tracing into _in…
LarryOsterman May 9, 2022
856c263
Merge branch 'main' into larryo/tracingprototype
LarryOsterman May 13, 2022
718d106
Pull request feedback; renamed a bunch of stuff
LarryOsterman May 13, 2022
0db651a
Fixed cgmanifest.json
LarryOsterman May 14, 2022
f42798c
Added opentelemetry-cpp license
LarryOsterman May 14, 2022
4d7123d
clang-format
LarryOsterman May 16, 2022
b4ab09f
Added some test cases for code coverage
LarryOsterman May 16, 2022
561c72b
Another try at defining Span
LarryOsterman May 16, 2022
03a1e9d
clang-format
LarryOsterman May 16, 2022
279a201
More CI code coverage
LarryOsterman May 16, 2022
2f6c7f8
Added readme and updated changelog for core
LarryOsterman May 16, 2022
84013ac
Merge branch 'main' into larryo/tracingprototype
LarryOsterman May 18, 2022
a1b12a2
Code review feedback and API surface cleanup
LarryOsterman May 20, 2022
58c324f
Renamed core-tracing-opentelemetry to core/tracing-opentelemetry
LarryOsterman May 20, 2022
ad763ec
MacOS build fixes
LarryOsterman May 20, 2022
65a9a52
clang-format
LarryOsterman May 20, 2022
cb054dc
Missing crlfs
LarryOsterman May 20, 2022
8c8c329
Noise reduction; added a bunch of forward looking definitions
LarryOsterman May 20, 2022
d2c7532
Noise reduction
LarryOsterman May 20, 2022
8a6895c
Moved core/tracing-opentelemetry to core/tracing/opentelemetry
LarryOsterman May 21, 2022
11445f2
API Review feedback
LarryOsterman May 23, 2022
6dfc0da
Merge branch 'main' into larryo/tracingprototype
LarryOsterman May 23, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .vscode/cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,11 @@
"cuse",
"CUSEUAP",
"DCMAKE",
"DDISABLE",
"deserializers",
"Deserializes",
"DFETCH",
"DMSVC",
"docfx",
"DPAPI",
"DRUN",
Expand Down Expand Up @@ -81,6 +83,7 @@
"ncus",
"Niels",
"nlohmann",
"nostd",
"noclean",
"NOCLOSE",
"NOCRLF",
Expand All @@ -89,6 +92,7 @@
"northcentralus",
"NTSTATUS",
"okhttp",
"otel",
"PBYTE",
"pdbs",
"Piotrowski",
Expand Down
14 changes: 12 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -55,21 +55,31 @@ if(MSVC_USE_STATIC_CRT AND MSVC)
#
# 5. We "replace with empty string" (i.e. remove) first, then add, so that '/MT'
# will be present (and present once) even if '/MD' was not.

message(STATUS "Configuring Static Runtime Library.")
if(${CMAKE_CXX_FLAGS} MATCHES ".*/MD.*")
string(REGEX REPLACE "/MD" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MT")
endif()

if(${CMAKE_CXX_FLAGS_RELEASE} MATCHES ".*/MD.*")
string(REGEX REPLACE "/MD" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")

endif()

if(${CMAKE_CXX_FLAGS_RELWITHDEBINFO} MATCHES ".*/MD.*")
string(REGEX REPLACE "/MD" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MT")
endif()

if(${CMAKE_CXX_FLAGS_MINSIZEREL} MATCHES ".*/MD.*")
string(REGEX REPLACE "/MD" "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MT")
endif()

if(${CMAKE_CXX_FLAGS_DEBUG} MATCHES ".*/MD.*")
string(REGEX REPLACE "/MDd" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
endif()
endif()

if(BUILD_TESTING)
Expand Down
21 changes: 21 additions & 0 deletions CMakeSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,13 @@
"name": "VCPKG_TARGET_TRIPLET",
"value": "x64-windows-static",
"type": "STRING"
},
{
"name": "MSVC_USE_STATIC_CRT",
"value": "True",
"type": "BOOL"
}

]
},
{
Expand All @@ -33,6 +39,11 @@
"name": "VCPKG_TARGET_TRIPLET",
"value": "x64-windows-static",
"type": "STRING"
},
{
"name": "MSVC_USE_STATIC_CRT",
"value": "True",
"type": "BOOL"
}
]
},
Expand All @@ -51,6 +62,11 @@
"name": "VCPKG_TARGET_TRIPLET",
"value": "x86-windows-static",
"type": "STRING"
},
{
"name": "MSVC_USE_STATIC_CRT",
"value": "True",
"type": "BOOL"
}
]
},
Expand All @@ -70,6 +86,11 @@
"value": "True",
"type": "BOOL"
},
{
"name": "MSVC_USE_STATIC_CRT",
"value": "True",
"type": "BOOL"
},
{
"name": "BUILD_TRANSPORT_CURL",
"value": "True",
Expand Down
23 changes: 12 additions & 11 deletions eng/pipelines/templates/stages/platform-matrix.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,15 @@
"CmakeArgs": " -DBUILD_TRANSPORT_CURL=ON"
},
"Win32Api_release_curl": {
"CmakeArgs": " -DBUILD_TESTING=ON -DBUILD_PERFORMANCE_TESTS=ON -DRUN_LONG_UNIT_TESTS=ON -DBUILD_TRANSPORT_CURL=ON",
"CmakeArgs": " -DBUILD_TESTING=ON -DBUILD_PERFORMANCE_TESTS=ON -DRUN_LONG_UNIT_TESTS=ON -DBUILD_TRANSPORT_CURL=ON -DMSVC_USE_STATIC_CRT=ON",
"BuildArgs": "--parallel 8 --config Release",
"PublishMapFiles": "true"
},
},
"Win32Api_debug_tests": {
"CmakeArgs": " -DBUILD_TESTING=ON -DBUILD_PERFORMANCE_TESTS=ON -DRUN_LONG_UNIT_TESTS=ON -DBUILD_TRANSPORT_CURL=ON -DBUILD_TRANSPORT_WINHTTP=ON",
"CmakeArgs": " -DBUILD_TESTING=ON -DBUILD_PERFORMANCE_TESTS=ON -DRUN_LONG_UNIT_TESTS=ON -DBUILD_TRANSPORT_CURL=ON -DBUILD_TRANSPORT_WINHTTP=ON -DMSVC_USE_STATIC_CRT=ON",
"BuildArgs": "--parallel 8 --config Debug",
"PublishMapFiles": "true"
}
}
},
"TargetArchitecture": {
"x86": {
Expand All @@ -72,19 +72,20 @@
"OSVmImage": "MMS2019",
"Pool": "azsdk-pool-mms-win-2019-general",
"CMAKE_GENERATOR": "Visual Studio 16 2019",
"CmakeArgs": " -DBUILD_TRANSPORT_WINHTTP=ON ",
"PublishMapFiles": "true"
}
},
"TargetPlatform": {
"UWP_debug": {
"CMAKE_SYSTEM_NAME": "WindowsStore",
"CMAKE_SYSTEM_VERSION": "10.0",
"CmakeArgs": " -DBUILD_TRANSPORT_WINHTTP=ON -DDISABLE_AZURE_CORE_OPENTELEMETRY=ON ",
"BuildArgs": "--parallel 8 --config Debug"
},
"UWP_release": {
"CMAKE_SYSTEM_NAME": "WindowsStore",
"CMAKE_SYSTEM_VERSION": "10.0",
"CmakeArgs": " -DBUILD_TRANSPORT_WINHTTP=ON -DDISABLE_AZURE_CORE_OPENTELEMETRY=ON ",
"BuildArgs": "--parallel 8 --config Release"
}
},
Expand All @@ -97,12 +98,12 @@
},
{
"StaticConfigs": {
"Ubuntu18": {
"OSVmImage": "MMSUbuntu18.04",
"Pool": "azsdk-pool-mms-ubuntu-1804-general",
"VCPKG_DEFAULT_TRIPLET": "x64-linux",
"BuildArgs": "-j 10"
}
"Ubuntu18": {
"OSVmImage": "MMSUbuntu18.04",
"Pool": "azsdk-pool-mms-ubuntu-1804-general",
"VCPKG_DEFAULT_TRIPLET": "x64-linux",
"BuildArgs": "-j 10"
}
},
"BuildSettings": {
"gpp-5": {
Expand Down
1 change: 1 addition & 0 deletions eng/pipelines/templates/steps/vcpkg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,4 @@ steps:
-Ref $(VcpkgCommit)
-VcpkgPath $(VCPKG_INSTALLATION_ROOT)
pwsh: true
displayName: Clone Vcpkg.
4 changes: 4 additions & 0 deletions sdk/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

add_subdirectory(azure-core)
if (NOT DISABLE_AZURE_CORE_OPENTELEMETRY)
add_subdirectory(azure-core-tracing-opentelemetry)
endif()

if (BUILD_PERFORMANCE_TESTS)
add_subdirectory(perf)
endif()
Expand Down
5 changes: 5 additions & 0 deletions sdk/core/azure-core-tracing-opentelemetry/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Release History

## 1.0.0-beta.1 (Unreleased)

- Initial release
95 changes: 95 additions & 0 deletions sdk/core/azure-core-tracing-opentelemetry/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# SPDX-License-Identifier: MIT

# setting CMAKE_TOOLCHAIN_FILE must happen before creating the project
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake-modules")
include(AzureVcpkg)
az_vcpkg_integrate()

# Azure core is compatible with CMake 3.12
cmake_minimum_required (VERSION 3.12)
project(azure-core-tracing-opentelemetry LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

include(AzureVersion)
include(AzureCodeCoverage)
include(AzureTransportAdapters)
include(AzureDoxygen)
include(AzureGlobalCompileOptions)
include(AzureConfigRTTI)
# Add create_map_file function
include(CreateMapFile)

find_package(Threads REQUIRED)

if(NOT AZ_ALL_LIBRARIES)
find_package(azure-core-cpp "1.5.0" CONFIG QUIET)
if(NOT azure-core-cpp_FOUND)
find_package(azure-core-cpp "1.5.0" REQUIRED)
endif()
endif()
find_package(opentelemetry-cpp "1.3.0" CONFIG REQUIRED)

set(
AZURE_CORE_OPENTELEMETRY_HEADER
inc/azure/core/tracing/opentelemetry/opentelemetry.hpp
)

set(
AZURE_CORE_OPENTELEMETRY_SOURCE
src/opentelemetry.cpp
)

add_library(azure-core-tracing-opentelemetry ${AZURE_CORE_OPENTELEMETRY_HEADER} ${AZURE_CORE_OPENTELEMETRY_SOURCE})

target_include_directories(
azure-core-tracing-opentelemetry
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
$<INSTALL_INTERFACE:include>
)

# make sure that users can consume the project as a library.
add_library(Azure::azure-core-tracing-opentelemetry ALIAS azure-core-tracing-opentelemetry)

# coverage. Has no effect if BUILD_CODE_COVERAGE is OFF
create_code_coverage(core-tracing-opentelemetry azure-core-tracing-opentelemetry azure-core-tracing-opentelemetry-test "tests?/*;samples?/*")

target_link_libraries(azure-core-tracing-opentelemetry INTERFACE Threads::Threads)

target_link_libraries(azure-core-tracing-opentelemetry PRIVATE azure-core
opentelemetry-cpp::api
opentelemetry-cpp::ext
opentelemetry-cpp::sdk
opentelemetry-cpp::trace)


get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
generate_documentation(azure-core-opentelemetry ${AZ_LIBRARY_VERSION})

az_vcpkg_export(
azure-core-tracing-opentelemetry
CORE_TRACING_OPENTELEMETRY
"azure/core/tracing/opentelemetry/dll_import_export.hpp"
)

az_rtti_setup(
azure-core-tracing-opentelemetry
CORE_TRACING_OPENTELEMETRY
"azure/core/tracing/opentelemetry/rtti.hpp"
)

if(BUILD_TESTING)
# define a symbol that enables some test hooks in code
add_compile_definitions(TESTING_BUILD)

if (NOT AZ_ALL_LIBRARIES)
include(AddGoogleTest)
enable_testing ()
endif()

add_subdirectory(test/ut)
endif()
Loading