envoyproxy / envoy-tools Goto Github PK
View Code? Open in Web Editor NEWCompanion tooling for Envoy proxy
License: Apache License 2.0
Companion tooling for Envoy proxy
License: Apache License 2.0
Right now, https://github.com/Rainton/envoy-tools/blob/79d6c9d00e61b06cdcda3734659c8e45f8f58ac3/csds-client/client/util/util.go#L70 will return not found if a certain type url is not explicitly linked. This is fragile and will result in csds client tool error out.
Instead, can we consider ignore if can't find, and print out the message as is (the content for the missing type will not be human readable, but we still get to see the rest)
In order to support new service routing APIs introduced in https://cloud.google.com/traffic-director/docs/service-routing-overview, we need to allow TRAFFICDIRECTOR_MESH_SCOPE_NAME as a valid key.
Client status discovery service (CSDS) is intended to be an API to query the status of xDS clients from control planes.
A generic CSDS client can be used to connect to control planes that support the CSDS API and aid the debug of service mesh deployment where a large number of xDS clients connect to the control plane.
There are a lot of dependabot updates, some with associated vulnerabilities, which should be landed
im happy to do it, but not sure of impact etc
Script to migrate Hardware Load Balancers' routing rules into EnvoyConfigs
csds-client will throw an error: "found unknown escape character" if node id contains backslash
We need to add filtering capability to CSDS client to filter on node id (e.g. prefix, suffix, regex).
/cc @fuqianggao
When we use visualization feature in the csds-client, the process is that the client parses the relationship between xDS and generates a graph based on the relationship in dot, then saves it in config_graph.dot. For example:
digraph G {
"LDS0\\listener";
"RDS0";
"LDS0\\listener"->"RDS0";
}
Then the client will call OpenBrowser(url string)
to open Graphviz Online with the dot file in the browser to show the graph automatically. For the previous graph example, the link would be https://dreampuf.github.io/GraphvizOnline/#digraph%20G{"LDS0\\listener";"RDS0";"LDS0\\listener"->"RDS0"}.
The logic of OpenBrowser(url string)
is that it will run different cmd based on different os. For linux, it runs
xdg-open 'https://dreampuf.github.io/GraphvizOnline/#digraph G{"LDS0\\listener";"RDS0";"LDS0\\listener"->"RDS0"}'
However, the problem is that it seems this command passes the double quotes differently based on different os version.
For Debian GNU/Linux rodete, which is the os of cloudtop of Google, when we run
xdg-open 'https://dreampuf.github.io/GraphvizOnline/#digraph G{"LDS0\\listener";"RDS0";"LDS0\\listener"->"RDS0"}'
it opens the link https://dreampuf.github.io/GraphvizOnline/#digraph%20G{LDS0\\listener;RDS0;LDS0\\listener->RDS0} in
browser, where the double quotes are missing, therefore, the graph cannot be shown correctly due to syntax error.
If we want to keep the double quotes in the link, we need to run
xdg-open 'https://dreampuf.github.io/GraphvizOnline/#digraph G{\"LDS0\\listener\";\"RDS0\";\"LDS0\\listener\"->\"RDS0\"}'
and it opens the link https://dreampuf.github.io/GraphvizOnline/#digraph%20G{"LDS0\\listener";"RDS0";"LDS0\\listener"->"RDS0"}, which is correct.
For Debian GNU/Linux 10 (buster), when we run
xdg-open 'https://dreampuf.github.io/GraphvizOnline/#digraph G{"LDS0\\listener";"RDS0";"LDS0\\listener"->"RDS0"}'
it opens the link https://dreampuf.github.io/GraphvizOnline/#digraph%20G{"LDS0\\listener";"RDS0";"LDS0\\listener"->"RDS0"} correcly.
But if we run the correct cmd in the previous case, it opens the link https://dreampuf.github.io/GraphvizOnline/#digraph%20G{\"LDS0\\listener\";\"RDS0\";\"LDS0\\listener\"->\"RDS0\"}, which is not correct.
The different behavior on different os version leads to the opening browser issue, and I cannot find a proper solution to it. Does anyone has suggestions?
The double quotes surrounding the node name cannot be discarded, because the real name of xDS always contains a backslash, only using double quotes can make the dot language recognize it as a whole name.
For now, the solution is, if opening browser fails, users can manually copy and paste the content in config_graph.dot into the input box of Graphviz Online to show the graph, which has been mentioned in README.
p25
,p50
,p75
,p95
]Current visualization is rudimental for operations! ๐ ๐
Quartiles made navigable via arrow-keys โฌ๏ธ
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.