willkg / crashstats-tools

Command line tools and library for interacting with Crash Stats (https://crash-stats.mozilla.org/)
Mozilla Public License 2.0
7 stars 0 forks source link

support _cardinality as a histogram value #102

Closed willkg closed 4 months ago

willkg commented 11 months ago

supersearchfacet supports cardinality like this:

$ supersearchfacet --_facets=_cardinality.product
cardinality_product
 cardinality_product | value 
---------------------|-------
 value               | 6     

but it doesn't support cardinality as a histogram value:

$ supersearchfacet --product=Firefox --_histogram.date=_cardinality.build_id
Traceback (most recent call last):
  File "/home/willkg/.local/bin/supersearchfacet", line 8, in <module>
    sys.exit(supersearchfacet())
  File "/home/willkg/.local/pipx/venvs/crashstats-tools/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/willkg/.local/pipx/venvs/crashstats-tools/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/willkg/.local/pipx/venvs/crashstats-tools/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/willkg/.local/pipx/venvs/crashstats-tools/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/willkg/.local/pipx/venvs/crashstats-tools/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/willkg/mozilla/crashstats-tools/src/crashstats_tools/cmd_supersearchfacet.py", line 420, in supersearchfacet
    facet_tables = convert_histogram_data(facets, facet_name, total)
  File "/home/willkg/mozilla/crashstats-tools/src/crashstats_tools/cmd_supersearchfacet.py", line 133, in convert_histogram_data
    records = {item["term"]: item["count"] for item in field_data}
  File "/home/willkg/mozilla/crashstats-tools/src/crashstats_tools/cmd_supersearchfacet.py", line 133, in <dictcomp>
    records = {item["term"]: item["count"] for item in field_data}
TypeError: string indices must be integers

https://crash-stats.mozilla.org/documentation/supersearch/#cardinality

https://crash-stats.mozilla.org/documentation/supersearch/#combining-aggregations