+1 to Bowen Song's feedback for the most part.

We have processes that parse output from these nodetool commands:

   - info
   - netstats
   - status
   - version

My opinion is that for anyone running a reasonably sized fleet of Cassandra
will have different flavors of automation - some things running on the
nodes themselves where nodetool is very handy and some things running
outside the cluster where virtual tables accessed via cql are preferred.

I propose a rule that within a given major version, additional lines of
output are acceptable changes, but changes to the format of existing lines
of output are forbidden.

I would be inclined to accept JSON or YAML output from nodetool for
Ruby/Python/etc scripts, but for bash, the human-readable output is more
work-able.

On Mon, Jul 10, 2023 at 4:35 AM Miklosovic, Stefan <
stefan.mikloso...@netapp.com> wrote:

> Hi Cassandra users,
>
> I am a Cassandra developer and we in Cassandra project would love to know
> if there are users out there for whom the output of the tooling, like,
> nodetool, is important when it comes to parsing it.
>
> We are elaborating on the consequences when nodetool's output for various
> commands is changed - we are not completely sure if users are parsing this
> output in some manner in their custom scripts so us changing the output
> would break their scripts which are parsing it.
>
> Additionally, how big of a problem the output change would be if it was
> happening only between major Cassandra versions? E.g. 4.0 -> 5.0 or 5.0 ->
> 6.0 only. In other words, there would be a guarantee that no breaking
> changes in minor versions would ever occur. Only in majors.
>
> Is somebody out there who is relying on the output of some particular
> nodetool commands (or any command in tools/bin) in production? How often do
> you rely on the parsing of nodetool's output and how much work it would be
> for you to rework some minor changes? For example, when the tool output
> prints "someStatistic: 10" and we would rework it to "Some Statistic: 10".
>
> Would you be OK if the output changed but you would have a way how to get
> e.g. JSON or YAML output instead by some flag on nodetool command so it
> would be irrelevant what the default output would be?
>
> It would be appreciated a lot if you gave us more feedback on this. I
> understand that not all questions are relatable to everyone.
>
> Even you are not relying on the output of the tooling in some custom
> scripts where you parse it, please tell us so. We are progressively trying
> to provide CQL way how to query the internal state of Cassandra, via
> virtual tables, for example.
>
> Regards
>
> Stefan Miklosovic



-- 
Andrew Weaver

Reply via email to