45 lines
1.5 KiB
C++
45 lines
1.5 KiB
C++
|
|
// Copyright (C) 2018-2025 Intel Corporation
|
||
|
|
// SPDX-License-Identifier: Apache-2.0
|
||
|
|
//
|
||
|
|
|
||
|
|
#pragma once
|
||
|
|
|
||
|
|
#include <fstream>
|
||
|
|
#include <iostream>
|
||
|
|
#include <type_traits>
|
||
|
|
|
||
|
|
#include "openvino/core/extension.hpp"
|
||
|
|
#include "openvino/frontend/visibility.hpp"
|
||
|
|
#include "openvino/pass/graph_rewrite.hpp"
|
||
|
|
#include "openvino/pass/manager.hpp"
|
||
|
|
#include "openvino/pass/pass.hpp"
|
||
|
|
|
||
|
|
namespace ov {
|
||
|
|
namespace frontend {
|
||
|
|
|
||
|
|
/// \brief Provides callback to report telemetry information back to Python code
|
||
|
|
class FRONTEND_API TelemetryExtension : public ov::Extension {
|
||
|
|
public:
|
||
|
|
using Ptr = std::shared_ptr<TelemetryExtension>;
|
||
|
|
using error_callback = std::function<void(const std::string& category, const std::string& error_message)>;
|
||
|
|
using event_callback = std::function<
|
||
|
|
void(const std::string& category, const std::string& action, const std::string& label, int value)>;
|
||
|
|
TelemetryExtension(const std::string& event_category,
|
||
|
|
const event_callback& send_event,
|
||
|
|
const error_callback& send_error,
|
||
|
|
const error_callback& send_stack_trace);
|
||
|
|
|
||
|
|
void send_event(const std::string& action, const std::string& label, int value = 1);
|
||
|
|
void send_error(const std::string& error_message);
|
||
|
|
void send_stack_trace(const std::string& error_message);
|
||
|
|
|
||
|
|
private:
|
||
|
|
std::string m_event_category;
|
||
|
|
event_callback m_send_event;
|
||
|
|
error_callback m_send_error;
|
||
|
|
error_callback m_send_stack_trace;
|
||
|
|
};
|
||
|
|
|
||
|
|
} // namespace frontend
|
||
|
|
} // namespace ov
|