Open chizo-gov opened 2 months ago
Added a new title + description for this ticket to track the design work for this increment; @chizo-gov, does this sound okay to you?
Hi @hursey013, @sknep — thought I’d check in with the latest version of the org usage page.
(Note: this is still in progress, but I wanted to get the latest version in front of you before I’m OOO tomorrow/Friday.)
Before I dive in: visual feedback is welcome at this stage! At the same time, I think it’d be most helpful to keep discussing whether we’re including the right information here. Put another way: what does a Dashboard user need to see or do on this page?
Okay, enough preamble! Here’s the design (also in Figma):
Here are some highlights:
Phew, that was a lot. I’d love to hear any thoughts you have, and figure out what else we need to include here.
(And feedback’s always welcome here, but I can find time for a sync discussion when I’m back next week. Let me know.)
some notes from chatting w/ @jameshochadel about this and looking for opportunities:
down for a chat! i just took rapid notes while noodling ^^
Thanks, @sknep and @jameshochadel! This is fantastically helpful. Just confirming receipt, but on first read I have a couple quick notes/questions:
unsure where the historic data/averages are coming from, perhaps the events api?
That’s something we’re investigating for technical feasibility. (Sorry, I should have noted that — thanks so much for flagging.)
some things might not be quota out of a max
Just to make sure I’m following: does this apply to everything that’s currently under the “Addons” section up above?
(Related: if there’s a list of services/features that are simply “how much you’re using”, that’d be really helpful.)
I think that’s all for now. Everything else looks stellar, but I’ll follow up with questions. (And thanks for the offer of a chat; I think that’ll be a likely next step.)
(@hursey013, holler if you have any thoughts on the above!)
@beepdotgov I can clarify the point about quotas. All of the metrics shown in the design have soft quotas in the IAA, but can't be shown as quotas in the web UI because the values in the IAA are not stored in a machine-readable format anywhere. (IAAs are ~PDFs.) Showing them as you did in the design would be ideal because, as I understand it, our target user wants to know how their usage compares to their agreement. But unfortunately the data isn't there (yet).
Why "soft" quotas? In practice, sometimes customers temporarily use more resources on some dimension than is specified in the IAA. As long as they have enough funding on the IAA to support this — or as long as they plan to add more to cover the difference — that's ok. The most common dimension for which this happens is memory. It's a manual process involving emails to our business & support teams.
@jameshochadel, thank you very much for the insight. I’ve been wondering when/if we’d run up against which IAA values were programmatically accessible, so I’m really glad you weighed in. Given that, I might recommend we refocus this design on what is currently available to us in a machine-readable format.
If that sounds like the right approach — and I’d love to hear others’ thoughts on this! — I have two questions:
Let me know what you folks think. And thank you again for the clear direction here, it’s been incredibly helpful!
@beepdotgov Of course!
X
from each X/Y
. That still seems useful to me; we're giving the billing persona one place to see all of their billable usage. To enumerate each metric in the mockup:
small
plan != 5 nodes of the medium
plan. So the hierarchy is 1 service offering -- many service plans
, and each service plan corresponds to a number of nodes. (Details on https://cloud.gov/pricing.) James, thank you again. This is such a huge help.
Questions/comments inline below:
We can display the numerator but not the denominator. I.e. we can show the
X
from eachX/Y
.
Just to clarify: this applies to just the items under Addons, correct? Or do we need to drop denominators elsewhere on the page?
To enumerate each metric in the mockup: [snip]
Thanks so much for walking me through this. For S3 and RDS, I think there’s an engineering/LoE discussion to be had here, at least in terms of what we want to invest in for a v1 of this page. I’ll sync up with @echappen to see how best to manage that.
(@hursey013, if you have any thoughts on priorities here, let me know!)
Note that we will need to report the plan type as well.
If you happen to know: is the plan type
accessible via an API?
The historical data is likely not available. I think we'll have to scrape and store it ourselves if we want to show that.
That was our sense too — thanks for confirming it. (And again, apologies for not flagging that earlier!)
Happy to help.
Just to clarify: this applies to just the items under Addons, correct?
Correct. The memory quota is in CAPI, as are the other quotas listed in the box on the right-hand side. The full list is here.
For S3 and RDS, I think there’s an engineering/LoE discussion to be had here
Agreed — happy to weigh in on that if you'd like.
is the plan type accessible via an API?
Yep! I should've used more precise language, but the relevant endpoints are service offerings, service plans, and service instances.
As an example of each: Cloud.gov might provide a service offering called "RDS (Relational Database Service)". It could have plans like postgres-small
, postgres-large
, mysql-small
, mysql-large
. A customer creates one or more service instances called whatever they want (my-database
, my-other-db
), each of which is associated with exactly one plan.
Service instances can be further configured with individual parameters. Typically, configuration that results in differences in billing gets broken out into different plans, and non-billing configuration is handled as parameters. (In our case, we don't currently bill for RDS instances — only their storage — but that's the general pattern.)
Okay! Thanks to @jameshochadel’s help, I got a lot more clarity on some of the API nuances at play here, which helped unlock me on the design revisions. Which are: right here! (Also in Figma, always in Figma)
A couple questions as we talk through this second round:
Thanks again for all the input, all. I’m really looking forward to hearing your feedback on this latest version.
Can I ask for one alternate, which takes the top left box and makes it larger/gives more weight? It feels very orienting, like an overview. I'd be curious what bumping up the size/impact would do, leaving the usage graphs/stats in the regular sized card/islands.
Oh, great call @sknep — thank you!
Here’s a (very) quick riff where I tweaked the type and content to make it stand out a bit more; if you’d like the entire card wider / more prominent, I’ll play around with some layout options. Let me know!
Okay! How’s this feel to you, @sknep? I quite like the new placement; I think that orienting block is a really great idea. Would love to hear what you think, though:
Oh I think you know the answer. ✨🎉
Marvelous news, thanks @sknep! So glad it’s shaping up nicely.
One thing came up in discussion with @echappen and @hursey013 today: the treatment of allocated memory could use some refinement. (The progress bar treatment’s a little unclear, and also presents things as an error.) We wondered if a pie chart might be a better approach, like so:
(That’s just the revised card; the entire thing’s viewable in context in Figma.)
How does that feel to folks?
You might consider some pattern backgrounds to differentiate beyond just the colors. They all seem of a similar amount of light and dark, so people who can't differentiate reds or blues and greens might struggle to match the segments to the legend.
So glad you flagged that, @sknep — thank you! I was trying to treat the chart’s as an enhancement to the table, which has all of the info the user’ll need. But I’ll do another pass on the chart, and play with a few other values.
(Also! I did run the chart through a few different (simulated!) models for color vision deficiency, and things hold up fairly well. But there are definitely a few areas where the contrast needs tweaking; thanks again for calling this out.)
Okay! Here’s a tweaked pie chart, with some updated colors:
I think these colors are much better, contrast-wise, and they seem to perform a lot better in these simulations:
(Of course, these are just simulations; I’d love to see how well these perform for our users. And once we get to implementation, I’ll make sure we’ve got a few other colors to cycle through for the chart.)
But! How do these feel to you, @sknep? And thanks again for raising this!
Thank you! Appreciate you bringing receipts 😁
Hey, I gotta show my work! Thanks for moving this forward, @sknep 🚀
@hursey013 @jameshochadel, would love any thoughts you might have too! Here’s the latest mockup (also in Figma):
Visual feedback’s very welcome, but/and if there are any product/data/API considerations we should talk through, I’d love to hear them.
Thanks all!
First off, let me just say how wonderful this looks! The information being presented here will allow folks to quickly assess the status of their org in one place, something that they cannot easily do today. I especially love the inline calls to action for support for things like increasing memory, it's simple enough but allows customers an immediate prompt for where they need to go if they need help.
It's already been covered above, but the pie chart looks great and adds a great visual representation of memory, one of the primary levers customers can adjust within their org. Thank you @sknep for your feedback on colors, I think where we landed looks great. Similarly, the ability to see both allocation and current usage within the same page provides some instant feedback on how close customers may be to hitting their threshold and where they might be able to make some changes.
During the feasibility review I think we can evaluate the sources from which we may be able to pull: historical data, IAA expiration, and support hour information. Off the top of my head I'm not sure if that information is readily available, but it warrants a deeper dive based on the value that information provides.
I think my only actionable feedback on the design based above would be in reference to the Additional Services
. Right now in the mockup there is one of each type of service represented, but in practice an org my have dozens or more of each of those services. There could be 10 S3 buckets in multiple spaces like dev, staging, and prod. Would the expectation be that these values (current usage) would be the sum of all of those S3 buckets or might there be a way to give a bit more insight into how that storage is allocated across all of the buckets? Perhaps using a similar approach to the At a Glance
section where we specify how many of each of those services exist? Something like, "Currently there is 4TB of usage across 12 S3 buckets, within 3 spaces"? I defer to you on the best way to present that information, but I do want to make sure we have the ability to represent the usage/status of what could be an unlimited number of brokered services such as s3 storage, various types of databases, and external domains.
Again, this looks beautiful @beepdotgov, amazing work!
@hursey013, thank you for the feedback. This is massively helpful! And I’m thrilled you’re happy with the progress.
(Responses inline below.)
During the feasibility review I think we can evaluate the sources from which we may be able to pull: historical data, IAA expiration, and support hour information. Off the top of my head I'm not sure if that information is readily available, but it warrants a deeper dive based on the value that information provides.
Thanks so much for noting that, and absolutely agreed. If any of those items aren’t programmatically available today, it might make sense to parcel out “now” vs “later” versions of the design, like we did for the welcome mat.
(I was already thinking the “View more detailed information »” link would be on that “later” version, as it’d require a page we’re not building yet.)
I think my only actionable feedback on the design based above would be in reference to the Additional Services. Right now in the mockup there is one of each type of service represented, but in practice an org my have dozens or more of each of those services. There could be 10 S3 buckets in multiple spaces like dev, staging, and prod. Would the expectation be that these values (current usage) would be the sum of all of those S3 buckets or might there be a way to give a bit more insight into how that storage is allocated across all of the buckets?
I’m very glad you called this out! I was thinking of it as the former: that this would be the sum of all (e.g.) S3 buckets. But if we need a little more detail at this level, we can work on adding it here.
Perhaps using a similar approach to the At a Glance section where we specify how many of each of those services exist? Something like, "Currently there is 4TB of usage across 12 S3 buckets, within 3 spaces"?
I like that suggestion. I’ll start tinkering with that, and try to get some ideas in front of you tomorrow.
Okay! I’ve spent the morning tinkering, but ultimately landed on a fairly straightforward approach: namely, adding @hursey013’s suggested text to each of the brokered service cards at the bottom of the page. And I think it works well!
(Also viewable in Figma.)
Per James’ notes, some of these cards will need a technical feasability review to decide if they’re ready for version 1 of the usage page, or a later version. (But again, I’d be happy to prep “now” and “future” mockups for this page.)
Let me know how this looks to you, @hursey013!
@echappen @hursey013 @jameshochadel Thanks so much for your time today!
I’ve got a revised version of the :cadillac:
design below, and I’d love to hear how it looks to you all. I’m specifically curious to know if the rolled-up Elasticache / Elasticsearch sections accurately reflect what we discussed today; feedback there would be really appreciated.
Once we’ve got the “cadillac” version looking as we need it to, I’ll prep the “what we can implement today” version for everyone’s review.
Thanks again, all!
@beepdotgov Amazing, great to see these updates so quickly. I think the ES/redis updates look great. The only change I'd make is "This organization has X Elasticache plans" -> "This organization has X Elasticache instances". An org may have zero, one, or multiple instances on a given plan, for a given offering. The IAA will enumerate how many instances on each plan they are paying for. So the list on the right of each block could work more like an aggregation / "group by": The number of instances per plan, and the total cost per plan type. E.g.
Plan | Instances | Monthly Cost |
---|---|---|
es-small | 2 | $400 |
@jameshochadel Thank you for weighing in, that’s perfect! I love the rollup idea; I’ll get those consolidated tables in now.
One small question:
The only change I'd make is "This organization has X Elasticache plans" -> "This organization has X Elasticache instances".
Since you explicitly called out Elasticache, I just want to confirm: should both Elasticache and Elasticsearch mention instances? Or just Elasticache?
Splendid. Yep, I meant both, thanks!
Fantastic, thank you!
Okay, the updated design’s below. I really like this rollup approach, but/and @jameshochadel @hursey013 I’d love to hear if this matches what you’d expect.
Thanks again for all the input today!
Looks great to me 🙌
Yep, love this! New rollup approach provides a lot of valuable information - let's move forward with it!
Wonderful, thank you both! Pulling together the non-cadillac version of the page now; I’ll have that ready for you two shortly.
Okay! I’ve got a “today” screen that’s ready for review. The major changes from the “cadillac” version are:
Here are the mockups:
(Both of these are available in Figma, if you’d like to review them next to the “cadillac” version.)
Would love to hear what you all think! Once this looks good, we can set it on the path to implementation.
This looks great @beepdotgov, let's move forward!
Small note: I think, if we wanted to, we could leave the view more detailed logging link in, and we can actually populate a link to ElasticSearch for the specific org which will give those log based metrics that we have on hand (example below). I think this could be a nice opportunity to make people aware of our existing logging solutions in case they don't know about them, or if they don't know how to access them.
Sounds great, Brian! I dropped that link back into the designs for now (attached); let’s discuss how best to proceed during feasibility review.
Since we’re coming to the end of the engagement, should we sync up as a team next week to figure out how to move this forward? (cc @echappen)
Yep, let's chat about it at increment planning on Monday
We’re creating an design for an organization’s “usage” page, which will show various pieces of data relevant to an organization.
This will be building off the work done in #502.
Can this task be done in one increment?
Yes.
Acceptance Criteria