Skip to content

Commit

Permalink
feat: add dynamic probing fields to v1 API
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 555400116
  • Loading branch information
Google APIs authored and Copybara-Service committed Aug 10, 2023
1 parent a9a67de commit 4f43e4b
Showing 1 changed file with 103 additions and 0 deletions.
103 changes: 103 additions & 0 deletions google/cloud/networkmanagement/v1/connectivity_test.proto
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,13 @@ message ConnectivityTest {
// existing test, or triggering a one-time rerun of an existing test.
ReachabilityDetails reachability_details = 12
[(google.api.field_behavior) = OUTPUT_ONLY];

// Output only. The probing details of this test from the latest run, present
// for applicable tests only. The details are updated when creating a new
// test, updating an existing test, or triggering a one-time rerun of an
// existing test.
ProbingDetails probing_details = 14
[(google.api.field_behavior) = OUTPUT_ONLY];
}

// Source or destination of the Connectivity Test.
Expand Down Expand Up @@ -267,3 +274,99 @@ message ReachabilityDetails {
// with multiple backends.
repeated Trace traces = 5;
}

// Latency percentile rank and value.
message LatencyPercentile {
// Percentage of samples this data point applies to.
int32 percent = 1;

// percent-th percentile of latency observed, in microseconds.
// Fraction of percent/100 of samples have latency lower or
// equal to the value of this field.
int64 latency_micros = 2;
}

// Describes measured latency distribution.
message LatencyDistribution {
// Representative latency percentiles.
repeated LatencyPercentile latency_percentiles = 1;
}

// Results of active probing from the last run of the test.
message ProbingDetails {
// Overall probing result of the test.
enum ProbingResult {
// No result was specified.
PROBING_RESULT_UNSPECIFIED = 0;

// At least 95% of packets reached the destination.
REACHABLE = 1;

// No packets reached the destination.
UNREACHABLE = 2;

// Less than 95% of packets reached the destination.
REACHABILITY_INCONSISTENT = 3;

// Reachability could not be determined. Possible reasons are:
// * The user lacks permission to access some of the network resources
// required to run the test.
// * No valid source endpoint could be derived from the request.
// * An internal error occurred.
UNDETERMINED = 4;
}

// Abort cause types.
enum ProbingAbortCause {
// No reason was specified.
PROBING_ABORT_CAUSE_UNSPECIFIED = 0;

// The user lacks permission to access some of the
// network resources required to run the test.
PERMISSION_DENIED = 1;

// No valid source endpoint could be derived from the request.
NO_SOURCE_LOCATION = 2;
}

// Representation of a network edge location as per
// https://cloud.google.com/vpc/docs/edge-locations.
message EdgeLocation {
// Name of the metropolitan area.
string metropolitan_area = 1;
}

// The overall result of active probing.
ProbingResult result = 1;

// The time that reachability was assessed through active probing.
google.protobuf.Timestamp verify_time = 2;

// Details about an internal failure or the cancellation of active probing.
google.rpc.Status error = 3;

// The reason probing was aborted.
ProbingAbortCause abort_cause = 4;

// Number of probes sent.
int32 sent_probe_count = 5;

// Number of probes that reached the destination.
int32 successful_probe_count = 6;

// The source and destination endpoints derived from the test input and used
// for active probing.
EndpointInfo endpoint_info = 7;

// Latency as measured by active probing in one direction:
// from the source to the destination endpoint.
LatencyDistribution probing_latency = 8;

// The EdgeLocation from which a packet destined for/originating from the
// internet will egress/ingress the Google network.
// This will only be populated for a connectivity test which has an internet
// destination/source address.
// The absence of this field *must not* be used as an indication that the
// destination/source is part of the Google network.
EdgeLocation destination_egress_location = 9;
}

0 comments on commit 4f43e4b

Please sign in to comment.