Skip to content

Commit

Permalink
refactor: paths and names (#12)
Browse files Browse the repository at this point in the history
  • Loading branch information
sjinks authored Sep 27, 2024
1 parent 3c8ae89 commit 297f1b0
Show file tree
Hide file tree
Showing 20 changed files with 248 additions and 199 deletions.
10 changes: 10 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,13 @@ jobs:
- name: Test
run: ctest --test-dir build

- name: Install
run: sudo cmake --install build

- name: Smoke test
run: |
cmake -B build
cmake --build build
./build/ci
working-directory: ci
6 changes: 4 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
cmake_minimum_required(VERSION 3.25)

project(opentelemetry_exporter_syslog_logs VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")
set(EXPORT_COMPILE_COMMANDS ON)

project(wwa_opentelemetry_exporter_syslog_logs VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_VERBOSE_MAKEFILE ON)

option(WITH_TESTING "Whether to enable tests" ON)
option(INSTALL_SYSLOG_EXPORTER "Whether to install the syslog exporter" ON)
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,23 +28,23 @@ cmake --install build
## Usage

```cmake
find_package(opentelemetry_exporter_syslog_logs CONFIG REQUIRED)
find_package(wwa_opentelemetry_exporter_syslog_logs CONFIG REQUIRED)
target_link_libraries(
my_target
PRIVATE
opentelemetry_exporter_syslog_logs::opentelemetry_exporter_syslog_logs
wwa::opentelemetry::syslog_log_record_exporter
)
```

```cpp
#include <opentelemetry/logs/provider.h>
#include <opentelemetry/sdk/logs/logger_provider.h>
#include <opentelemetry/sdk/logs/simple_log_record_processor.h>
#include <opentelemetry_exporter_syslog_logs/syslog_exporter_factory.h>
#include <opentelemetry/exporters/wwa/syslog/log_record_exporter_factory.h>

void init_logging()
{
auto exporter = opentelemetry::exporter::logs::SyslogLogRecordExporterFactory::Create(
auto exporter = wwa::opentelemetry::exporter::logs::SyslogLogRecordExporterFactory::Create(
"syslog-identifier"
);

Expand Down
9 changes: 9 additions & 0 deletions ci/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
cmake_minimum_required(VERSION 3.25)

project(ci VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_VERBOSE_MAKEFILE ON)

find_package(wwa_opentelemetry_exporter_syslog_logs CONFIG REQUIRED)

add_executable(ci main.cpp)
target_link_libraries(ci PRIVATE wwa::opentelemetry::syslog_log_record_exporter)
28 changes: 28 additions & 0 deletions ci/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#include <opentelemetry/exporters/wwa/syslog/log_record_exporter_factory.h>
#include <opentelemetry/logs/provider.h>
#include <opentelemetry/sdk/logs/logger_provider.h>
#include <opentelemetry/sdk/logs/simple_log_record_processor.h>

namespace {

void init_logging()
{
auto exporter = wwa::opentelemetry::exporter::logs::SyslogLogRecordExporterFactory::Create("syslog-identifier");

auto processor = std::make_unique<opentelemetry::sdk::logs::SimpleLogRecordProcessor>(std::move(exporter));

auto provider = std::make_shared<opentelemetry::sdk::logs::LoggerProvider>(std::move(processor));

opentelemetry::logs::Provider::SetLoggerProvider(
std::static_pointer_cast<opentelemetry::logs::LoggerProvider>(provider)
);
}

} // namespace

int main()
{
init_logging();
opentelemetry::logs::Provider::GetLoggerProvider()->GetLogger("logger name", "somelib")->Info("test message");
return 0;
}
15 changes: 0 additions & 15 deletions cmake/opentelemetry_exporter_syslog_logs-config.cmake

This file was deleted.

14 changes: 14 additions & 0 deletions cmake/wwa_opentelemetry_exporter_syslog_logs-config.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
get_filename_component(WWA_OTEL_SYSLOG_EXPORTER_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)

list(APPEND CMAKE_MODULE_PATH ${WWA_OTEL_SYSLOG_EXPORTER_CMAKE_DIR})

include(CMakeFindDependencyMacro)
find_dependency(opentelemetry-cpp QUIET REQUIRED COMPONENTS logs)
if(opentelemetry-cpp_VERSION VERSION_LESS 1.11.0)
message(FATAL_ERROR "opentelemetry-cpp version must be at least 1.11.0, ${opentelemetry-cpp_VERSION} found")
endif()

if(NOT TARGET wwa_opentelemetry_exporter_syslog_logs)
include("${WWA_OTEL_SYSLOG_EXPORTER_CMAKE_DIR}/wwa_opentelemetry_exporter_syslog_logs-target.cmake")
add_library(wwa::opentelemetry::syslog_log_record_exporter ALIAS wwa_opentelemetry_exporter_syslog_logs)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#ifndef FD634219_63FB_4E23_BC1D_6DB0BC20B6BE
#define FD634219_63FB_4E23_BC1D_6DB0BC20B6BE

#include <memory>
#include <opentelemetry/nostd/string_view.h>
#include <opentelemetry/sdk/logs/exporter.h>

#include "syslog_interface.h"
#include "wwa_opentelemetry_exporter_syslog_logs_export.h"

namespace wwa::opentelemetry::exporter::logs {

class WWA_OPENTELEMETRY_EXPORTER_SYSLOG_LOGS_EXPORT SyslogLogRecordExporterFactory {
public:
static std::unique_ptr<::opentelemetry::sdk::logs::LogRecordExporter>
Create(::opentelemetry::nostd::string_view ident);

static std::unique_ptr<::opentelemetry::sdk::logs::LogRecordExporter>
Create(::opentelemetry::nostd::string_view ident, int option, int facility);

static std::unique_ptr<::opentelemetry::sdk::logs::LogRecordExporter>
Create(::opentelemetry::nostd::string_view ident, const std::shared_ptr<SyslogInterface>& syslog);

static std::unique_ptr<::opentelemetry::sdk::logs::LogRecordExporter> Create(
::opentelemetry::nostd::string_view ident,
const std::shared_ptr<SyslogInterface>& syslog,
int option,
int facility
);

static void setSyslogImplementation(const std::shared_ptr<SyslogInterface>& syslog);
};

} // namespace wwa::opentelemetry::exporter::logs

#endif /* FD634219_63FB_4E23_BC1D_6DB0BC20B6BE */
20 changes: 20 additions & 0 deletions include/opentelemetry/exporters/wwa/syslog/syslog_interface.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#ifndef F6CC3A7F_2A2D_4616_B15D_A7739D98F053
#define F6CC3A7F_2A2D_4616_B15D_A7739D98F053

#include <opentelemetry/nostd/string_view.h>
#include "wwa_opentelemetry_exporter_syslog_logs_export.h"

namespace wwa::opentelemetry::exporter::logs {

// NOLINTNEXTLINE(*-special-member-functions)
class WWA_OPENTELEMETRY_EXPORTER_SYSLOG_LOGS_EXPORT SyslogInterface {
public:
virtual ~SyslogInterface() = default;
virtual void openlog(::opentelemetry::nostd::string_view ident, int option, int facility) = 0;
virtual void syslog(int priority, ::opentelemetry::nostd::string_view message) = 0;
virtual void closelog() = 0;
};

} // namespace wwa::opentelemetry::exporter::logs

#endif /* F6CC3A7F_2A2D_4616_B15D_A7739D98F053 */

This file was deleted.

20 changes: 0 additions & 20 deletions include/opentelemetry_exporter_syslog_logs/syslog_interface.h

This file was deleted.

16 changes: 8 additions & 8 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
include(GenerateExportHeader)

set(sources
syslog_exporter.cpp
syslog_exporter_factory.cpp
log_record_exporter.cpp
log_record_exporter_factory.cpp
default_syslog_implementation_p.cpp
)

set(headers
${CMAKE_CURRENT_BINARY_DIR}/opentelemetry_exporter_syslog_logs_export.h
${CMAKE_SOURCE_DIR}/include/opentelemetry_exporter_syslog_logs/syslog_exporter_factory.h
${CMAKE_SOURCE_DIR}/include/opentelemetry_exporter_syslog_logs/syslog_interface.h
${CMAKE_CURRENT_BINARY_DIR}/wwa_opentelemetry_exporter_syslog_logs_export.h
${CMAKE_SOURCE_DIR}/include/opentelemetry/exporters/wwa/syslog/log_record_exporter_factory.h
${CMAKE_SOURCE_DIR}/include/opentelemetry/exporters/wwa/syslog/syslog_interface.h
)

add_library(${PROJECT_NAME} ${sources})
Expand Down Expand Up @@ -51,12 +51,12 @@ if(INSTALL_SYSLOG_EXPORTER)
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}"
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/opentelemetry/exporters/wwa/syslog"
)

install(EXPORT "${PROJECT_NAME}-target"
FILE "${PROJECT_NAME}-target.cmake"
NAMESPACE "${PROJECT_NAME}::"
# NAMESPACE "${PROJECT_NAME}::"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
)

Expand All @@ -71,4 +71,4 @@ if(INSTALL_SYSLOG_EXPORTER)
"${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}-config.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
)
endif()
endif()
4 changes: 2 additions & 2 deletions src/default_syslog_implementation.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#ifndef D17D59F2_0FDF_4FF4_96EE_244866D19190
#define D17D59F2_0FDF_4FF4_96EE_244866D19190

#include "opentelemetry_exporter_syslog_logs/syslog_interface.h"
#include "opentelemetry/exporters/wwa/syslog/syslog_interface.h"

class DefaultSyslogImplementation : public opentelemetry::exporter::logs::SyslogInterface {
class DefaultSyslogImplementation : public wwa::opentelemetry::exporter::logs::SyslogInterface {
public:
void openlog(opentelemetry::nostd::string_view ident, int option, int facility) override;
void syslog(int priority, opentelemetry::nostd::string_view message) override;
Expand Down
40 changes: 20 additions & 20 deletions src/syslog_exporter.cpp → src/log_record_exporter.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "syslog_exporter.h"
#include "log_record_exporter.h"

#include <array>
#include <string>
Expand Down Expand Up @@ -54,11 +54,12 @@ std::string stringify_attribute(const opentelemetry::common::AttributeValue& v)

} // namespace

std::shared_ptr<opentelemetry::exporter::logs::SyslogInterface>
opentelemetry::exporter::logs::SyslogLogRecordExporter::syslog{nullptr};
namespace wwa::opentelemetry::exporter::logs {

opentelemetry::exporter::logs::SyslogLogRecordExporter::SyslogLogRecordExporter(
opentelemetry::nostd::string_view ident, int option, int facility
std::shared_ptr<SyslogInterface> SyslogLogRecordExporter::syslog{nullptr};

SyslogLogRecordExporter::SyslogLogRecordExporter(
::opentelemetry::nostd::string_view ident, int option, int facility
) noexcept
{
if (!SyslogLogRecordExporter::syslog) {
Expand All @@ -68,30 +69,29 @@ opentelemetry::exporter::logs::SyslogLogRecordExporter::SyslogLogRecordExporter(
SyslogLogRecordExporter::syslog->openlog(ident.data(), option, facility);
}

opentelemetry::exporter::logs::SyslogLogRecordExporter::~SyslogLogRecordExporter()
SyslogLogRecordExporter::~SyslogLogRecordExporter()
{
SyslogLogRecordExporter::syslog->closelog();
}

std::unique_ptr<opentelemetry::sdk::logs::Recordable>
opentelemetry::exporter::logs::SyslogLogRecordExporter::MakeRecordable() noexcept
std::unique_ptr<::opentelemetry::sdk::logs::Recordable> SyslogLogRecordExporter::MakeRecordable() noexcept
{
return std::make_unique<opentelemetry::sdk::logs::ReadWriteLogRecord>();
return std::make_unique<::opentelemetry::sdk::logs::ReadWriteLogRecord>();
}

// NOLINTNEXTLINE(bugprone-exception-escape)
opentelemetry::sdk::common::ExportResult opentelemetry::exporter::logs::SyslogLogRecordExporter::Export(
const opentelemetry::nostd::span<std::unique_ptr<opentelemetry::sdk::logs::Recordable>>& records
::opentelemetry::sdk::common::ExportResult SyslogLogRecordExporter::Export(
const ::opentelemetry::nostd::span<std::unique_ptr<::opentelemetry::sdk::logs::Recordable>>& records
) noexcept
{
if (this->is_shutdown.load()) {
return opentelemetry::sdk::common::ExportResult::kFailure;
return ::opentelemetry::sdk::common::ExportResult::kFailure;
}

for (auto& record : records) {
auto log_record = std::unique_ptr<opentelemetry::sdk::logs::ReadWriteLogRecord>(
auto log_record = std::unique_ptr<::opentelemetry::sdk::logs::ReadWriteLogRecord>(
// NOLINTNEXTLINE(*-type-static-cast-downcast)
static_cast<opentelemetry::sdk::logs::ReadWriteLogRecord*>(record.release())
static_cast<::opentelemetry::sdk::logs::ReadWriteLogRecord*>(record.release())
);

if (log_record == nullptr) {
Expand All @@ -111,23 +111,21 @@ opentelemetry::sdk::common::ExportResult opentelemetry::exporter::logs::SyslogLo
SyslogLogRecordExporter::syslog->syslog(priority, msg);
}

return opentelemetry::sdk::common::ExportResult::kSuccess;
return ::opentelemetry::sdk::common::ExportResult::kSuccess;
}

bool opentelemetry::exporter::logs::SyslogLogRecordExporter::ForceFlush(std::chrono::microseconds) noexcept
bool SyslogLogRecordExporter::ForceFlush(std::chrono::microseconds) noexcept
{
return true;
}

bool opentelemetry::exporter::logs::SyslogLogRecordExporter::Shutdown(std::chrono::microseconds) noexcept
bool SyslogLogRecordExporter::Shutdown(std::chrono::microseconds) noexcept
{
this->is_shutdown.store(true);
return true;
}

void opentelemetry::exporter::logs::SyslogLogRecordExporter::setSyslogImplementation(
const std::shared_ptr<opentelemetry::exporter::logs::SyslogInterface>& impl
)
void SyslogLogRecordExporter::setSyslogImplementation(const std::shared_ptr<SyslogInterface>& impl)
{
if (!impl) {
SyslogLogRecordExporter::syslog = std::make_shared<DefaultSyslogImplementation>();
Expand All @@ -136,3 +134,5 @@ void opentelemetry::exporter::logs::SyslogLogRecordExporter::setSyslogImplementa
SyslogLogRecordExporter::syslog = impl;
}
}

} // namespace wwa::opentelemetry::exporter::logs
Loading

0 comments on commit 297f1b0

Please sign in to comment.