Scheduled maintenance on Saturday, 27 September 2025, from 07:00 AM to 4:00 PM GMT (09:00 AM to 6:00 PM CEST) - some services may be unavailable -

Skip to content
analytics_frontend.proto 3.14 KiB
Newer Older
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
package analytics_frontend;

import "context.proto";
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
//import "kpi_sample_types.proto";

service AnalyticsFrontendService {
  rpc StartAnalyzer  (Analyzer      ) returns (AnalyzerId   ) {}
  rpc StopAnalyzer   (AnalyzerId    ) returns (context.Empty) {}
  rpc SelectAnalyzers(AnalyzerFilter) returns (AnalyzerList ) {}
}

message AnalyzerId {
  context.Uuid analyzer_id = 1;
}

Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
enum AnalyzerOperationMode {
  ANALYZEROPERATIONMODE_BATCH     = 0;
  ANALYZEROPERATIONMODE_STREAMING = 1;
}

message Analyzer {
  AnalyzerId                 analyzer_id          = 1;
  string                     algorithm_name       = 2; // The algorithm to be executed
  repeated kpi_manager.KpiId input_kpi_ids        = 3; // The KPI Ids to be processed by the analyzer
  repeated kpi_manager.KpiId output_kpi_ids       = 4; // The KPI Ids produced by the analyzer
  AnalyzerOperationMode      operation_mode       = 5; // Operation mode of the analyzer
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed

  // In batch mode...
  float                      batch_min_duration_s = 6; // ..., min duration to collect before executing batch
  float                      batch_max_duration_s = 7; // ..., max duration collected to execute the batch
  uint64                     batch_min_size       = 8; // ..., min number of samples to collect before executing batch
  uint64                     batch_max_size       = 9; // ..., max number of samples collected to execute the batch
}

message AnalyzerFilter {
  // Analyzer that fulfill the filter are those that match ALL the following fields.
  // An empty list means: any value is accepted.
  // All fields empty means: list all Analyzers
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
  repeated AnalyzerId                     analyzer_id     = 1;
  repeated string                         algorithm_names = 2;
  repeated kpi_manager.KpiId              input_kpi_ids   = 3;
  repeated kpi_manager.KpiId              output_kpi_ids  = 4;
  //repeated kpi_sample_types.KpiSampleType kpi_sample_type = 5; // Not implemented
  //repeated context.DeviceId               device_id       = 6; // Not implemented
  //repeated context.EndPointId             endpoint_id     = 7; // Not implemented
  //repeated context.ServiceId              service_id      = 8; // Not implemented
  //repeated context.SliceId                slice_id        = 9; // Not implemented
  //repeated context.ConnectionId           connection_id   = 10; // Not implemented
  //repeated context.LinkId                 link_id         = 11; // Not implemented
}

message AnalyzerList {
  repeated Analyzer analyzer_list = 1;
}