Bug 1194022 - RFE: Improve 'ceph osd crush show-tunables' output
Summary: RFE: Improve 'ceph osd crush show-tunables' output
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Red Hat Ceph Storage
Classification: Red Hat Storage
Component: Distribution
Version: 1.2.2
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: rc
: 1.3.4
Assignee: Dan Mick
QA Contact: Harish NV Rao
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-02-18 19:18 UTC by Tupper Cole
Modified: 2023-09-14 23:58 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-08-08 18:01:48 UTC
Embargoed:


Attachments (Terms of Use)
Show tunables output for various crush profiles (3.29 KB, text/plain)
2015-02-18 19:18 UTC, Tupper Cole
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHCEPH-3405 0 None None None 2022-02-21 18:23:48 UTC

Description Tupper Cole 2015-02-18 19:18:42 UTC
Created attachment 993266 [details]
Show tunables output for various crush profiles

Description of problem:
The output of `ceph osd crush show-tunables` is confusing to users. Now on a Firefly cluster default is equivalent to bobtail, optimal is equivalent to firefly and legacy is equivalent to argonaut.

As far as I can tell the optimal, legacy and profile are all related, but appear to be three different values to the user. 

I suggest that:
The "profile:" field be used to reflect argonaut, bobtail, firefly or custom. 

Setting "optimal" or "legacy" be reflected by showing "firefly" or "argonaut" in the profile field. 

The documentation needs to be cleaned up to be more clear to customers. It is not clear in the docs that setting firefly will enable chooseleaf_vary_r, and it is not reflected in `ceph osd crush show-tunables` in 0.80.7. Additinoally, looking at the output of `ceph osd crush show-tunables` the only apparent difference if the profile name and the "optimal" field. 
 

Actual results:
Attached. 

Expected results:


Additional info:

Comment 1 Federico Lucifredi 2015-03-26 00:29:46 UTC
Alfredo, master of usability, what say you?

Comment 2 Alfredo Deza 2015-03-27 16:33:26 UTC
This is how the output looks for Ceph version 0.80.9 (minus logging which I have no idea why I was getting it):

$ sudo ceph osd crush show-tunables
{ "choose_local_tries": 0,
  "choose_local_fallback_tries": 0,
  "choose_total_tries": 50,
  "chooseleaf_descend_once": 1,
  "chooseleaf_vary_r": 0,
  "straw_calc_version": 1,
  "profile": "unknown",
  "optimal_tunables": 0,
  "legacy_tunables": 0,
  "require_feature_tunables": 1,
  "require_feature_tunables2": 1,
  "require_feature_tunables3": 0,
  "has_v2_rules": 0,
  "has_v3_rules": 0}

------------------

It looks like unformatted JSON output which is OK for machine consumption but not for readability.

A nice tabular representation with the profile as the title with Tupper's recommendation would be much better.

Since we would be returning a text representation of the JSON output, we would also be able to add more prose if needed that would be difficult (or just not possible) with JSON output.
That output is *beyond* confusing. We should get rid of all those log messages that do not belong in the output of for the command.

Comment 3 Ken Dreyer (Red Hat) 2015-04-08 18:22:37 UTC
I'm not clear on what it would take to fix this bug. It sounds like we need some doc improvements, and some "ceph osd crush show-tunables" output improvements?

Comment 4 John Poelstra 2015-04-20 16:03:57 UTC
Interpreting icolle's set of release flag to "+" mean "+" for devel ack

Comment 5 John Poelstra 2015-04-20 16:09:06 UTC
Nevermind... I see what happened. Resetting.

Comment 7 Harish NV Rao 2015-04-21 05:06:27 UTC
Will this bug be fixed via code change or doc change or both? Please clarify. Also, please share the expected output if the fix is going to be in code.

Comment 8 Harish NV Rao 2015-07-15 15:21:53 UTC
Please refer to my comment 7 and provide the details requested there so i can ACK this bug.

Comment 9 Dan Mick 2015-07-15 21:25:04 UTC
I wasn't aware this bug was assigned to me until today.  I have no plans or design.

Comment 10 Dan Mick 2015-07-15 23:04:13 UTC
Reviewing the code that creates the lists briefly, it's not as simple as all that; the tunables are both individually settable (either by tunable
keywords in the crush map source or with an osd crush tunables command)
and settable as a lump (osd crush tunables only).  The output indicates whether the tunables exactly match the ones set by the 'group' name.  As I understand it, the main source of confusion is that multiple tests can match the set tunables, but only the first match is output as 'profile'.

I guess I would personally prefer to have "profile" multivalued, outputting all matching profiles rather than, apparently, just the first one tested.  If we did that, we could potentially roll up the idea of 'optimal' and 'legacy' into that same list.  It's still a bit opaque, as the question of "what exactly does optimal mean" isn't queryable either.

Separately, the JSON output, and its lack of sorting, is common to many Ceph commands, so I don't think it should change.  We could address this with a non-JSON form of the command, specified by "ceph osd crush show-tunables --format=plain" (since we can't change the default 'output JSON' form of the existing command without breaking backward compatibility).

What say you, BZ universe?

Comment 11 Harish NV Rao 2015-07-22 07:15:23 UTC
Hi Dan,

Will this be fixed in 1.3.1?

Can you please provide the steps and expected cli output to test this fix?

Regards,
Harish

Comment 12 Harish NV Rao 2015-07-23 11:02:56 UTC
Dan,

Can you please change the Target Release for this defect if it's not going to be fixed in 1.3.1?

Regards,
Harish

Comment 13 Ken Dreyer (Red Hat) 2015-07-23 14:50:00 UTC
(In reply to Harish NV Rao from comment #12)
> Can you please change the Target Release for this defect if it's not going
> to be fixed in 1.3.1?

Changed :)

Comment 15 Ken Dreyer (Red Hat) 2015-12-15 15:57:56 UTC
Dan's listed two code improvements here (comment #10):

    1. Make "profile" multivalued
    2. Introduce a "--format=plain" option

Tupper, will these suggestions work for you?

Dan can you please file bug(s) upstream at tracker.ceph.com to track these features, if they are not already implemented for Jewel?

Comment 16 Dan Mick 2015-12-17 19:10:46 UTC
I haven't made anything like a plan to do this; I've gotten no feedback at all from Tupper, so am considering this stalled until I get any kind of answer...

Comment 18 Dan Mick 2016-08-08 18:01:48 UTC
A long time with no update; I'm assuming this is no longer desired.

Comment 19 Red Hat Bugzilla 2023-09-14 23:58:11 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 500 days


Note You need to log in before you can comment on or make changes to this bug.