Starting with YugabyteDB version 2.15.3.0, the gflags (server parameters) page shows the values grouped into a number of categories.
Current situation
In versions below 2.15.3.0, the gflags are shown in the following way at the HTTP management page of the tablet servers and the masters:
This is the list of gflags, with no ordering, and no indicators about the gflags, such as whether they are changed from their default value or not.
New situation
In versions starting from 2.15.3.0, the gflags screen looks like this:
In the new gflags screen, the output starts with 'NodeInfo Flags', and these are ordered alphabetically.
The new situation shows the gflags in a few categories:
NodeInfo
NodeInfo flags are flags that are tell important per node information. These flags can be default, but nevertheless the information tells vital information about the node and process' configuration on that node.
Custom
Custom flags are flags that are explicitly changed from their default value. So if you are looking for specific configuration or oddities in case of troubleshooting, this is where to look.
Auto
Auto flags are flags that get a value automatically set based on the node or process specifics.
Default
Default flags are flags that did not change from their default value.
Using the gflags page with tools
If you are using tools to read the gflags HTTP page, then the different page might mean you need to rewrite your tool. But this might not be the case!
If any tools wants to 'scrape' the gflags HTTP page, you can add ?raw
to the URL, and it will output the gflags without HTML tags, simply as a list of gflags. This works both with current versions and the new 2.15.3.0 version.
But there is a better way!
The gflags JSON page
Another addition for the gflags information is the api/v1/varz
endpoint. This outputs the gflags as JSON:
curl http://192.168.66.80:7000/api/v1/varz | jq
{
"flags": [
{
"name": "log_filename",
"value": "yb-master",
"type": "NodeInfo"
},
{
"name": "placement_cloud",
"value": "local",
"type": "NodeInfo"
},
{
"name": "placement_region",
"value": "local",
"type": "NodeInfo"
},
{
"name": "placement_zone",
"value": "local",
"type": "NodeInfo"
},
...etc...
This makes it very easy for anything that can use JSON to parse the gflags information.
Top comments (2)
Btw, do you know what does the "g" stand for in the "gflags"? We refer to them as server-side parameters but why "g"
The 'g' stands for 'google'. We are using a google library to parse command line flags. This also explains why the raw output shows the flags with two dashes in front of the name.