use package version for telemetry (#2780)

This commit is contained in:
Victor Vazquez 2021-08-23 11:04:14 -07:00 committed by GitHub
parent 27dc6bba32
commit d66081c01f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 45 additions and 3 deletions

View File

@ -12,6 +12,7 @@
#include "private/key_request_parameters.hpp"
#include "private/key_serializers.hpp"
#include "private/keyvault_protocol.hpp"
#include "private/package_version.hpp"
#include <memory>
#include <string>
@ -87,7 +88,7 @@ KeyClient::KeyClient(
m_pipeline = std::make_shared<Azure::Core::Http::_internal::HttpPipeline>(
options,
KeyVaultServicePackageName,
m_apiVersion,
PackageVersion::ToString(),
std::move(perRetrypolicies),
std::move(perCallpolicies));
}

View File

@ -49,6 +49,40 @@ TEST_F(MockedTransportAdapterTest, keyvaultTelemetryId)
EXPECT_TRUE(foundHeader);
}
TEST_F(MockedTransportAdapterTest, keyvaultTelemetryIdVersion)
{
m_client = std::make_unique<
Azure::Security::KeyVault::Keys::Test::KeyClientWithNoAuthenticationPolicy>(
"url", m_clientOptions);
std::string const expectedTelemetryVersionString(
Azure::Security::KeyVault::Keys::_detail::PackageVersion::ToString());
std::string telemetryStart("azsdk-cpp-keyvault-keys/");
// The fake response from the mocked transport adapter is good for parsing a Key back
auto response = m_client->GetKey("name");
// The response is an echo of the sent headers. Let's find the telemetry ID
auto foundHeader = false;
for (auto& header : response.RawResponse->GetHeaders())
{
if (Azure::Core::_internal::StringExtensions::LocaleInvariantCaseInsensitiveEqual(
header.first, "User-Agent"))
{
foundHeader = true;
EXPECT_PRED2(
[](std::string const& received, std::string const& sent) {
return Azure::Core::_internal::StringExtensions::LocaleInvariantCaseInsensitiveEqual(
received, sent);
},
header.second.substr(telemetryStart.size(), expectedTelemetryVersionString.size()),
expectedTelemetryVersionString);
break;
}
}
EXPECT_TRUE(foundHeader);
}
TEST_F(MockedTransportAdapterTest, CreateKeyRSA)
{
std::string applicationId("CreateKeyRSA");

View File

@ -11,10 +11,12 @@
#include "./../../src/private/key_serializers.hpp"
#include "./../../src/private/keyvault_protocol.hpp"
#include "./../../src/private/package_version.hpp"
#include <azure/core.hpp>
#include <azure/core/internal/http/pipeline.hpp>
#include <azure/keyvault/keyvault_keys.hpp>
#include <cstdio>
#include <string>
@ -105,7 +107,11 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys { nam
std::vector<std::unique_ptr<Azure::Core::Http::Policies::HttpPolicy>> perCallpolicies;
std::vector<std::unique_ptr<Azure::Core::Http::Policies::HttpPolicy>> perRetrypolicies;
m_pipeline = std::make_unique<Azure::Core::Http::_internal::HttpPipeline>(
options, "test", "version", std::move(perRetrypolicies), std::move(perCallpolicies));
options,
"keyvault-keys",
Azure::Security::KeyVault::Keys::_detail::PackageVersion::ToString(),
std::move(perRetrypolicies),
std::move(perCallpolicies));
}
};

View File

@ -21,6 +21,7 @@
using namespace Azure::Security::KeyVault::Secrets;
using namespace Azure::Core::Http::Policies;
using namespace Azure::Core::Http::Policies::_internal;
using namespace Azure::Security::KeyVault::Secrets::_detail;
namespace {
constexpr static const char TelemetryName[] = "keyvault-secrets";
@ -74,7 +75,7 @@ SecretClient::SecretClient(
Azure::Core::Url(vaultUrl),
apiVersion,
Azure::Core::Http::_internal::HttpPipeline(
options, TelemetryName, apiVersion, std::move(perRetrypolicies), {}));
options, TelemetryName, PackageVersion::ToString(), std::move(perRetrypolicies), {}));
}
Azure::Response<KeyVaultSecret> SecretClient::GetSecret(