public sealed class LabelPropertiesPattern : IMessage<LabelPropertiesPattern>, IEquatable<LabelPropertiesPattern>, IDeepCloneable<LabelPropertiesPattern>, IBufferMessage, IMessageReference documentation and code samples for the App Topology v1 API class LabelPropertiesPattern.
Matcher for label and property. The matcher accepts both exact match and expression.
Implements
IMessageLabelPropertiesPattern, IEquatableLabelPropertiesPattern, IDeepCloneableLabelPropertiesPattern, IBufferMessage, IMessageNamespace
Google.Cloud.AppTopology.V1Assembly
Google.Cloud.AppTopology.V1.dll
Constructors
LabelPropertiesPattern()
public LabelPropertiesPattern()LabelPropertiesPattern(LabelPropertiesPattern)
public LabelPropertiesPattern(LabelPropertiesPattern other)| Parameter | |
|---|---|
| Name | Description |
other |
LabelPropertiesPattern |
Properties
LabelMatcherExpr
public string LabelMatcherExpr { get; set; }Required. Matcher expression for labels. Allow OR / AND operators; The syntax is defined by the following grammar:
- The label expression can use either
ORorANDoperator, but not a combination of both. Example:AppHub/Application,AppHub/Workload OR AppHub/Service
| Property Value | |
|---|---|
| Type | Description |
string |
|
PropertyMatcherExpr
public string PropertyMatcherExpr { get; set; }Optional. The syntax of the filter is defined by the following grammar: https://google.aip.dev/160.
Referencing properties of graph elements using traversal operator ..
Repeated properties cannot be traversed.
e.g. e.NodeName, where e is a node or edge alias.
The following properties are supported for all node and edge types:
Labels: repeated string property. Can be used to combine conditions between labels and properties. e.g.e.Labels : "label_1"to match a node/edge with labellabel_1.NodeName/EdgeName: string property. Support for filtering by node or edge names. e.g.app.NodeName = "apphub.io/Application"
Other properties types can be found at https://apptopology.googleapis.com/v1/GetSchema
The following operators are supported on properties:
Checking if a non-repeated property of a graph element is equal to a scalar value using the equality operator
=.- LHS must be a node/edge property.
- RHS must be a scalar literal.
- Supported value types: string (enclosed in double quotes), int, double,
and boolean.
e.g.
e.project = "project_1"
Checking if a non-repeated property of a graph element satisfies a condition using the comparison operators
>,<,>=,<=.- LHS must be a node/edge property.
- RHS must be a scalar literal.
- Supported value types: string (enclosed in double quotes), int, double.
e.g.
e.NumericProperty < 0.1
Checking if a scalar value is present in a repeated property HAS operator
:.- LHS must be a repeated property.
- RHS must be a scalar literal.
- Supported value types: string (enclosed in double quotes), int, double.
e.g.
e.Labels : "label_1", wheree.Labelsis a repeated string property.
Checking if a property is present using HAS_PROPERTY operator
:.- LHS must be a node or edge alias.
- RHS must be a property name.
e.g.
e : Base/Location, whereeis a node or edge alias.
Combining multiple filters using logical operators :
AND, andOR.- Parentheses must be used to resolve ambiguity.
e.g.
e.Base/Location = "us-central1" AND e.project = "project_1"
- Parentheses must be used to resolve ambiguity.
e.g.
The following custom functions are supported:
EQUALS_ANY(arg1, arg2, arg3, ...)
- Checks if
arg1(a non-repeated property) equals any of the subsequent scalar literal arguments. - arg1: non-repeated property. Supported value types: string (enclosed in double quotes), int, double.
- arg2, arg3, ...: The remaining arguments are literal values to compare against. All the arguments must be of the same type.
- e.g.
EQUALS_ANY(e.project, "project_1", "project_2")
- Checks if
CONTAINS_ANY(arg1, arg2, arg3, ...)
- Checks if a repeated property has any of the given scalar literals. arg1: repeated_property. Supported element types: string (enclosed in double quotes), int, double.
- arg2, arg3, ...: The remaining arguments are literal values to compare against. All the arguments must be of the same type.
- e.g.
CONTAINS_ANY(e.folders, "folder_1", "folder_2")
CONTAINS_ANY_LESS_THAN(arg1, arg2)
- Checks if a repeated property has any element less than the given scalar literal.
- arg1: repeated_property. Supported element types are: int, double.
- arg2: scalar literal
- e.g.
CONTAINS_ANY_LESS_THAN(e.NumericProperty, 0.1)
CONTAINS_ANY_GREATER_THAN(arg1, arg2)
- Checks if a repeated property has any element greater than the given scalar literal.
- arg1: repeated_property. Supported element types are: int, double.
- arg2: scalar literal
- e.g.
CONTAINS_ANY_GREATER_THAN(e.NumericProperty, 0.1)
CONTAINS_ANY_LESS_OR_EQUAL(arg1, arg2)
- Checks if a repeated property has any element less than or equal to the given scalar literal.
- arg1: repeated_property. Supported element types are: int, double.
- arg2: scalar literal
- e.g.
CONTAINS_ANY_LESS_OR_EQUAL(e.NumericProperty, 0.1)
CONTAINS_ANY_GREATER_OR_EQUAL(arg1, arg2)
- Checks if a repeated property has any element greater than or equal to the given scalar literal.
- arg1: repeated_property. Supported element types are: int, double.
- arg2: scalar literal
- e.g.
CONTAINS_ANY_GREATER_OR_EQUAL(e.NumericProperty, 0.1)
NOTE:
- For Alert nodes, only the equality operator
=is supported. The expression cannot be a composite boolean expression (i.e., combining multiple conditions with AND/OR is not supported; it must be simple). e.g.a.NodeName = "alert-1"is supported, buta.NodeName = "alert-1" OR a.NodeName = "alert-2"is not supported. - For traffic edges, filters cannot be added.
| Property Value | |
|---|---|
| Type | Description |
string |
|