-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
release/arista: Release connectivitymonitor
Releases connectivitymonitor.v1 Change-Id: Ic41ccc65b868bc84e04adc252d58a6a1ba2d65fb
- Loading branch information
1 parent
4014f5b
commit 0612001
Showing
4 changed files
with
1,540 additions
and
0 deletions.
There are no files selected for viewing
14 changes: 14 additions & 0 deletions
14
arista/connectivitymonitor.v1/connectivitymonitor-changelog.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Copyright (c) 2022 Arista Networks, Inc. All rights reserved. | ||
# Arista Networks, Inc. Confidential and Proprietary. | ||
# Subject to Arista Networks, Inc.'s EULA. | ||
# FOR INTERNAL USE ONLY. NOT FOR DISTRIBUTION. | ||
|
||
Changes: | ||
- date: 2023-04-24 | ||
description: Add config fields to connectivity monitor probes | ||
version: 1.1.0 | ||
onprem: true | ||
cvaas: true | ||
- date: 2022-11-05 | ||
description: Initial revision | ||
version: 1.0.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
// Copyright (c) 2023 Arista Networks, Inc. All rights reserved. | ||
// Use of this source code is governed by the Apache License 2.0 | ||
// that can be found in the COPYING file. | ||
|
||
syntax = "proto3"; | ||
|
||
package arista.connectivitymonitor.v1; | ||
|
||
option go_package = "github.com/aristanetworks/cloudvision-go/api/arista/connectivitymonitor.v1;connectivitymonitor"; | ||
|
||
import "google/protobuf/wrappers.proto"; | ||
import "fmp/extensions.proto"; | ||
|
||
// ProbeKey uniquely identifies a connectivity monitor probe. | ||
message ProbeKey { | ||
option (fmp.model_key) = true; | ||
// device_id is the id of the device in the probe. | ||
google.protobuf.StringValue device_id = 1; | ||
// host is the hostname used in the probe. | ||
google.protobuf.StringValue host = 2; | ||
// vrf is the name of the VRF in the probe. | ||
google.protobuf.StringValue vrf = 3; | ||
} | ||
|
||
// ProbeStatsKey uniquely identifies a connectivity monitor probe's statistics, | ||
// per source interface. | ||
message ProbeStatsKey { | ||
option (fmp.model_key) = true; | ||
// device_id is the id of the device in the probe. | ||
google.protobuf.StringValue device_id = 1; | ||
// host is the hostname used in the probe. | ||
google.protobuf.StringValue host = 2; | ||
// vrf is the name of the VRF in the probe. | ||
google.protobuf.StringValue vrf = 3; | ||
// source_intf is the name of the interface in the probe. | ||
google.protobuf.StringValue source_intf = 4; | ||
} | ||
|
||
// Probe is identifying information of a connectivity monitor probe. | ||
// It is used to retrieve probe information without getting the corresponding stats so that | ||
// probe information can be displayed without streaming all related data, such as in the UI. | ||
message Probe { | ||
option (fmp.model) = "ro"; | ||
// key uniquely identifies the connectivity monitor probe. | ||
ProbeKey key = 1; | ||
// ip_addr is the IP Address of the probe. | ||
google.protobuf.StringValue ip_addr = 2; | ||
// host_name is the name of the host of the probe. | ||
google.protobuf.StringValue host_name = 3; | ||
// description is the description of the probe. | ||
google.protobuf.StringValue description = 4; | ||
} | ||
|
||
// ProbeStats is the connectivity monitor statistics related to the specified probe. | ||
message ProbeStats { | ||
option (fmp.model) = "ro"; | ||
// key uniquely identifies the connectivity monitor probe. | ||
ProbeStatsKey key = 1; | ||
// latency_millis is the latency between the device interface and the host. | ||
// Value is in milliseconds. | ||
google.protobuf.DoubleValue latency_millis = 2; | ||
// jitter_millis is the amount of jitter experienced by requests | ||
// between the device interface and host. | ||
// Value is in milliseconds. | ||
google.protobuf.DoubleValue jitter_millis = 3; | ||
// http_response_time_millis is the amount of time taken to respond to a http | ||
// request between the device interface and the host. | ||
// Value is in milliseconds. | ||
google.protobuf.DoubleValue http_response_time_millis = 4; | ||
// packet_loss_percent is the amount of packet loss experienced | ||
// by requests between the device interface and host. | ||
// Value is a percentage. | ||
google.protobuf.Int64Value packet_loss_percent = 5; | ||
// error is the error reported on the connection. | ||
google.protobuf.StringValue error = 6; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,220 @@ | ||
// Copyright (c) 2023 Arista Networks, Inc. All rights reserved. | ||
// Use of this source code is governed by the Apache License 2.0 | ||
// that can be found in the COPYING file. | ||
|
||
// | ||
// Code generated by boomtown. DO NOT EDIT. | ||
// | ||
|
||
syntax = "proto3"; | ||
|
||
package arista.connectivitymonitor.v1; | ||
option go_package = "github.com/aristanetworks/cloudvision-go/api/arista/connectivitymonitor.v1;connectivitymonitor"; | ||
|
||
import "arista/connectivitymonitor.v1/connectivitymonitor.proto"; | ||
import "arista/time/time.proto"; | ||
import "arista/subscriptions/subscriptions.proto"; | ||
import "google/protobuf/timestamp.proto"; | ||
import "google/protobuf/wrappers.proto"; | ||
|
||
message MetaResponse { | ||
// Time holds the timestamp of the last item included in the metadata calculation. | ||
google.protobuf.Timestamp time = 1; | ||
|
||
// Operation indicates how the value in this response should be considered. | ||
// Under non-subscribe requests, this value should always be INITIAL. In a subscription, | ||
// once all initial data is streamed and the client begins to receive modification updates, | ||
// you should not see INITIAL again. | ||
arista.subscriptions.Operation type = 2; | ||
|
||
// Count is the number of items present under the conditions of the request. | ||
google.protobuf.UInt32Value count = 3; | ||
}; | ||
|
||
message ProbeRequest { | ||
// Key uniquely identifies a Probe instance to retrieve. | ||
// This value must be populated. | ||
ProbeKey key = 1; | ||
|
||
// Time indicates the time for which you are interested in the data. | ||
// If no time is given, the server will use the time at which it makes the request. | ||
google.protobuf.Timestamp time = 2; | ||
}; | ||
|
||
message ProbeResponse { | ||
// Value is the value requested. | ||
// This structure will be fully-populated as it exists in the datastore. If | ||
// optional fields were not given at creation, these fields will be empty or | ||
// set to default values. | ||
Probe value = 1; | ||
|
||
// Time carries the (UTC) timestamp of the last-modification of the | ||
// Probe instance in this response. | ||
google.protobuf.Timestamp time = 2; | ||
}; | ||
|
||
message ProbeSomeRequest { | ||
repeated ProbeKey keys = 1; | ||
|
||
// Time indicates the time for which you are interested in the data. | ||
// If no time is given, the server will use the time at which it makes the request. | ||
google.protobuf.Timestamp time = 2; | ||
}; | ||
|
||
message ProbeSomeResponse { | ||
// Value is the value requested. | ||
// This structure will be fully-populated as it exists in the datastore. If | ||
// optional fields were not given at creation, these fields will be empty or | ||
// set to default values. | ||
Probe value = 1; | ||
|
||
// Error is an optional field. | ||
// It should be filled when there is an error in the GetSome process. | ||
google.protobuf.StringValue error = 2; | ||
google.protobuf.Timestamp time = 3; | ||
}; | ||
|
||
message ProbeStreamRequest { | ||
// PartialEqFilter provides a way to server-side filter a GetAll/Subscribe. | ||
// This requires all provided fields to be equal to the response. | ||
// | ||
// While transparent to users, this field also allows services to optimize internal | ||
// subscriptions if filter(s) are sufficiently specific. | ||
repeated Probe partial_eq_filter = 1; | ||
|
||
// TimeRange allows limiting response data to within a specified time window. | ||
// If this field is populated, at least one of the two time fields are required. | ||
// | ||
// For GetAll, the fields start and end can be used as follows: | ||
// | ||
// * end: Returns the state of each Probe at end. | ||
// * Each Probe response is fully-specified (all fields set). | ||
// * start: Returns the state of each Probe at start, followed by updates until now. | ||
// * Each Probe response at start is fully-specified, but updates may be partial. | ||
// * start and end: Returns the state of each Probe at start, followed by updates | ||
// until end. | ||
// * Each Probe response at start is fully-specified, but updates until end may | ||
// be partial. | ||
// | ||
// This field is not allowed in the Subscribe RPC. | ||
arista.time.TimeBounds time = 3; | ||
}; | ||
|
||
message ProbeStreamResponse { | ||
// Value is a value deemed relevant to the initiating request. | ||
// This structure will always have its key-field populated. Which other fields are | ||
// populated, and why, depends on the value of Operation and what triggered this notification. | ||
Probe value = 1; | ||
|
||
// Time holds the timestamp of this Probe's last modification. | ||
google.protobuf.Timestamp time = 2; | ||
|
||
// Operation indicates how the Probe value in this response should be considered. | ||
// Under non-subscribe requests, this value should always be INITIAL. In a subscription, | ||
// once all initial data is streamed and the client begins to receive modification updates, | ||
// you should not see INITIAL again. | ||
arista.subscriptions.Operation type = 3; | ||
}; | ||
|
||
service ProbeService { | ||
rpc GetOne (ProbeRequest) returns (ProbeResponse); | ||
rpc GetSome (ProbeSomeRequest) returns (stream ProbeSomeResponse); | ||
rpc GetAll (ProbeStreamRequest) returns (stream ProbeStreamResponse); | ||
rpc Subscribe (ProbeStreamRequest) returns (stream ProbeStreamResponse); | ||
rpc GetMeta (ProbeStreamRequest) returns (MetaResponse); | ||
rpc SubscribeMeta (ProbeStreamRequest) returns (stream MetaResponse); | ||
} | ||
|
||
message ProbeStatsRequest { | ||
// Key uniquely identifies a ProbeStats instance to retrieve. | ||
// This value must be populated. | ||
ProbeStatsKey key = 1; | ||
|
||
// Time indicates the time for which you are interested in the data. | ||
// If no time is given, the server will use the time at which it makes the request. | ||
google.protobuf.Timestamp time = 2; | ||
}; | ||
|
||
message ProbeStatsResponse { | ||
// Value is the value requested. | ||
// This structure will be fully-populated as it exists in the datastore. If | ||
// optional fields were not given at creation, these fields will be empty or | ||
// set to default values. | ||
ProbeStats value = 1; | ||
|
||
// Time carries the (UTC) timestamp of the last-modification of the | ||
// ProbeStats instance in this response. | ||
google.protobuf.Timestamp time = 2; | ||
}; | ||
|
||
message ProbeStatsSomeRequest { | ||
repeated ProbeStatsKey keys = 1; | ||
|
||
// Time indicates the time for which you are interested in the data. | ||
// If no time is given, the server will use the time at which it makes the request. | ||
google.protobuf.Timestamp time = 2; | ||
}; | ||
|
||
message ProbeStatsSomeResponse { | ||
// Value is the value requested. | ||
// This structure will be fully-populated as it exists in the datastore. If | ||
// optional fields were not given at creation, these fields will be empty or | ||
// set to default values. | ||
ProbeStats value = 1; | ||
|
||
// Error is an optional field. | ||
// It should be filled when there is an error in the GetSome process. | ||
google.protobuf.StringValue error = 2; | ||
google.protobuf.Timestamp time = 3; | ||
}; | ||
|
||
message ProbeStatsStreamRequest { | ||
// PartialEqFilter provides a way to server-side filter a GetAll/Subscribe. | ||
// This requires all provided fields to be equal to the response. | ||
// | ||
// While transparent to users, this field also allows services to optimize internal | ||
// subscriptions if filter(s) are sufficiently specific. | ||
repeated ProbeStats partial_eq_filter = 1; | ||
|
||
// TimeRange allows limiting response data to within a specified time window. | ||
// If this field is populated, at least one of the two time fields are required. | ||
// | ||
// For GetAll, the fields start and end can be used as follows: | ||
// | ||
// * end: Returns the state of each ProbeStats at end. | ||
// * Each ProbeStats response is fully-specified (all fields set). | ||
// * start: Returns the state of each ProbeStats at start, followed by updates until now. | ||
// * Each ProbeStats response at start is fully-specified, but updates may be partial. | ||
// * start and end: Returns the state of each ProbeStats at start, followed by updates | ||
// until end. | ||
// * Each ProbeStats response at start is fully-specified, but updates until end may | ||
// be partial. | ||
// | ||
// This field is not allowed in the Subscribe RPC. | ||
arista.time.TimeBounds time = 3; | ||
}; | ||
|
||
message ProbeStatsStreamResponse { | ||
// Value is a value deemed relevant to the initiating request. | ||
// This structure will always have its key-field populated. Which other fields are | ||
// populated, and why, depends on the value of Operation and what triggered this notification. | ||
ProbeStats value = 1; | ||
|
||
// Time holds the timestamp of this ProbeStats's last modification. | ||
google.protobuf.Timestamp time = 2; | ||
|
||
// Operation indicates how the ProbeStats value in this response should be considered. | ||
// Under non-subscribe requests, this value should always be INITIAL. In a subscription, | ||
// once all initial data is streamed and the client begins to receive modification updates, | ||
// you should not see INITIAL again. | ||
arista.subscriptions.Operation type = 3; | ||
}; | ||
|
||
service ProbeStatsService { | ||
rpc GetOne (ProbeStatsRequest) returns (ProbeStatsResponse); | ||
rpc GetSome (ProbeStatsSomeRequest) returns (stream ProbeStatsSomeResponse); | ||
rpc GetAll (ProbeStatsStreamRequest) returns (stream ProbeStatsStreamResponse); | ||
rpc Subscribe (ProbeStatsStreamRequest) returns (stream ProbeStatsStreamResponse); | ||
rpc GetMeta (ProbeStatsStreamRequest) returns (MetaResponse); | ||
rpc SubscribeMeta (ProbeStatsStreamRequest) returns (stream MetaResponse); | ||
} |
Oops, something went wrong.