mirror of
https://github.com/yalue/onnxruntime_go.git
synced 2025-11-01 11:12:36 +08:00
Expose telemetry control APIs
- This change adds the DisableTelemetry() and EnableTelemetry() top-level functions, which wrap the DisableTelemetryEvents() and EnableTelemetryEvents() C API functions for the package's internal onnxruntime environment. - This change rolls back some of the prior commit. As a fan of the onnxruntime library, I decided to take a more charitable approach to their telemetry and not disable it by default in these bindings.
This commit is contained in:
@@ -93,11 +93,6 @@ func InitializeEnvironment() error {
|
||||
return fmt.Errorf("Error creating ORT environment: %w",
|
||||
statusToError(status))
|
||||
}
|
||||
status = C.DisableTelemetry(ortEnv)
|
||||
if status != nil {
|
||||
return fmt.Errorf("Error disabling ORT telemetry: %w",
|
||||
statusToError(status))
|
||||
}
|
||||
|
||||
status = C.CreateOrtMemoryInfo(&ortMemoryInfo)
|
||||
if status != nil {
|
||||
@@ -134,6 +129,38 @@ func DestroyEnvironment() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Disables telemetry events for the onnxruntime environment. Must be called
|
||||
// after initializing the environment using InitializeEnvironment(). It is
|
||||
// unclear from the onnxruntime docs whether this will cause an error or
|
||||
// silently return if telemetry is already disabled.
|
||||
func DisableTelemetry() error {
|
||||
if !IsInitialized() {
|
||||
return NotInitializedError
|
||||
}
|
||||
status := C.DisableTelemetry(ortEnv)
|
||||
if status != nil {
|
||||
return fmt.Errorf("Error disabling onnxruntime telemetry: %w",
|
||||
statusToError(status))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Enables telemetry events for the onnxruntime environment. Must be called
|
||||
// after initializing the environment using InitializeEnvironment(). It is
|
||||
// unclear from the onnxruntime docs whether this will cause an error or
|
||||
// silently return if telemetry is already enabled.
|
||||
func EnableTelemetry() error {
|
||||
if !IsInitialized() {
|
||||
return NotInitializedError
|
||||
}
|
||||
status := C.EnableTelemetry(ortEnv)
|
||||
if status != nil {
|
||||
return fmt.Errorf("Error enabling onnxruntime telemetry: %w",
|
||||
statusToError(status))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// The Shape type holds the shape of the tensors used by the network input and
|
||||
// outputs.
|
||||
type Shape []int64
|
||||
|
||||
@@ -265,3 +265,30 @@ func TestExampleNetwork(t *testing.T) {
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnableDisableTelemetry(t *testing.T) {
|
||||
InitializeRuntime(t)
|
||||
defer func() {
|
||||
e := DestroyEnvironment()
|
||||
if e != nil {
|
||||
t.Logf("Error cleaning up environment: %s\n", e)
|
||||
t.FailNow()
|
||||
}
|
||||
}()
|
||||
e := EnableTelemetry()
|
||||
if e != nil {
|
||||
t.Logf("Error enabling onnxruntime telemetry: %s\n", e)
|
||||
t.Fail()
|
||||
}
|
||||
e = DisableTelemetry()
|
||||
if e != nil {
|
||||
t.Logf("Error disabling onnxruntime telemetry: %s\n", e)
|
||||
t.Fail()
|
||||
}
|
||||
e = EnableTelemetry()
|
||||
if e != nil {
|
||||
t.Logf("Error re-enabling onnxruntime telemetry after disabling: %s\n",
|
||||
e)
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,10 @@ OrtStatus *DisableTelemetry(OrtEnv *env) {
|
||||
return ort_api->DisableTelemetryEvents(env);
|
||||
}
|
||||
|
||||
OrtStatus *EnableTelemetry(OrtEnv *env) {
|
||||
return ort_api->EnableTelemetryEvents(env);
|
||||
}
|
||||
|
||||
void ReleaseOrtEnv(OrtEnv *env) {
|
||||
ort_api->ReleaseEnv(env);
|
||||
}
|
||||
|
||||
@@ -35,6 +35,9 @@ OrtStatus *CreateOrtEnv(char *name, OrtEnv **env);
|
||||
// Wraps ort_api->DisableTelemetryEvents. Returns a non-NULL status on error.
|
||||
OrtStatus *DisableTelemetry(OrtEnv *env);
|
||||
|
||||
// Wraps ort_api->EnableTelemetryEvents. Returns a non-NULL status on error.
|
||||
OrtStatus *EnableTelemetry(OrtEnv *env);
|
||||
|
||||
// Wraps ort_api->ReleaseEnv
|
||||
void ReleaseOrtEnv(OrtEnv *env);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user