grosser / kennel

Datadog monitors/dashboards/slos as code, avoid chaotic management via UI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SLO Summaries don't get imported

WillPlatnick opened this issue · comments

Datadog has changed around their SLO widgets work. Previously they operated as widgets of their own. They've now apparently gotten rid of the SLO widget and replaced them with the SLO Summary widget, now that they're treating SLO's as first class objects.

When you do an import of a dashboard that has SLO Summary widgets, they don't appear.

yeah so all slo monitors are now just linked to slos or so ...

            {
              definition: {
                title: "[migrated] dash: fooo",
                type: "slo",
                add_timeframe: true,
                height: 19,
                isNew: false,
                isShared: false,
                legend: false,
                legend_size: "0",
                loading: true,
                react_header: true,
                show_component_uptimes: false,
                show_error_budget: true,
                show_viz: false,
                slo_id: "sdsdfdfsdfsdfs",
                time_windows: [
                  "7d"
                ],
                title_text: "[migrated] dash: foo",
                view_mode: "overall",
                view_type: "detail",
                viz: "slo",
                width: 60
              }
            },

diffing/planing seems to work with both ... so not really any problem
I tried adding a slo summary with the api and it worked fine ... also just keeping widgets also works fine

the only enhancement that would be nice is adding slo api support so they can be managed via kennel and then resolving them in the widgets by name

PR welcome to add slo support and then slo summary resolve support
I might do it if we end up wanting to use it, but not sure when that will be

That's very weird. I'm on kennel 1.56.0 and just did an import again on a dashboard with 3 SLO Summary widgets, via RESOURCE=dashboard ID=xxx-xxx-xxx rake kennel:import and what gets returned doesn't have any definitions for any slo's. The string slo doesn't exist in the whole output of what's returned.

Can confirm they are not in the API output but are there when you go into the dash. Opening a ticket upstream. Will leave this ticket open and report back with what datadog has to say, since others may be impacted with same issue.

@grosser Can you provide the returned dashboard json with the SLO Summary widget? Datadog support is saying it shouldn’t be returned in their current API.

tell them to look at dashboard ID qhy-94d-ub8 / https://api.datadoghq.com/api/v1/dashboard/qhy-94d-ub8 where I added a slo summary and slo widget
returns a "type":"slo", widget with an slo_id and a "type":"uptime"

@grosser if you just create a new dashboard, and ONLY the slo summary widget (not the SLO widget), do you get a JSON response that has the SLO widget?

works just as fine

  "widgets": [
    {
      "definition": {
        "board_id": "qhy-94d-ub8",

@grosser Datadog is saying it works for timeseries but not for screenboards. Can you tell me if you're getting an API response that includes SLO Summary widgets on a screenboard for you?