Skip to content

feat(q-dev): enrich logging fields, separate dashboards, add E2E tests#8786

Open
warren830 wants to merge 3 commits intomainfrom
feat/q-dev-logging-enrich-dashboards
Open

feat(q-dev): enrich logging fields, separate dashboards, add E2E tests#8786
warren830 wants to merge 3 commits intomainfrom
feat/q-dev-logging-enrich-dashboards

Conversation

@warren830
Copy link
Contributor

Summary

  • New logging fields: Add CodeReferenceCount, WebLinkCount, HasFollowupPrompts to chat_log and LeftContextLength, RightContextLength to completion_log, aligned with Kiro prompt logging docs
  • Dashboard separation: Create dedicated qdev_feature_metrics dashboard for legacy by_user_analytic data; reorganize qdev_executive with Row dividers clearly labeling each data source (_tool_q_dev_chat_log, _tool_q_dev_user_report, cross-source)
  • Dashboard enrichment: Add Chat Trigger Type Distribution, Response Enrichment Breakdown, Completion Context Size Trends, and Response Enrichment Trends panels to logging dashboard
  • SQL fixes: Fix only_full_group_by incompatibility in Weekly Active Users and New vs Returning Users queries; fix Steering Adoption stat returning string instead of numeric
  • E2E tests: Add Playwright test suite covering full pipeline flow (connection → scope → blueprint → pipeline → Grafana dashboard verification)

Dashboard Overview

Dashboard Data Source Purpose
Kiro Usage Dashboard _tool_q_dev_user_report New format: credits, messages, subscriptions
Kiro Legacy Feature Metrics (NEW) _tool_q_dev_user_data Legacy: feature-level metrics
Kiro AI Activity Insights chat_log + completion_log Prompt logging
Kiro Executive Dashboard Cross-source KPIs with clear data source labels

Test plan

  • go build ./plugins/q_dev/... passes
  • go test ./plugins/q_dev/... passes
  • Playwright E2E: 13/13 tests pass (connection, scope, blueprint, pipeline, 4 dashboards)
  • All dashboard panels render with data (verified via screenshots)
  • Review migration script for production safety

🤖 Generated with Claude Code

…e, add E2E tests

- Add new fields to chat_log: CodeReferenceCount, WebLinkCount, HasFollowupPrompts
  (from codeReferenceEvents, supplementaryWebLinksEvent, followupPrompts in JSON)
- Add new fields to completion_log: LeftContextLength, RightContextLength
  (from leftContext/rightContext in JSON)
- Update s3_logging_extractor to parse and populate new fields
- Add migration script 20260319_add_logging_fields
- Create qdev_feature_metrics dashboard for legacy by_user_analytic data
- Reorganize qdev_executive dashboard with Row dividers labeling data sources
  and cross-dashboard navigation links
- Enrich qdev_logging dashboard with new panels:
  Chat Trigger Type Distribution, Response Enrichment Breakdown,
  Completion Context Size Trends, Response Enrichment Trends
- Fix SQL compatibility with only_full_group_by mode in executive dashboard
  (Weekly Active Users Trend, New vs Returning Users)
- Fix Steering Adoption stat panel returning string instead of numeric value
- Add Playwright E2E test covering full pipeline flow and dashboard verification
@dosubot dosubot bot added size:XXL This PR changes 1000+ lines, ignoring generated files. component/plugins This issue or PR relates to plugins improvement pr-type/feature-development This PR is to develop a new feature labels Mar 20, 2026
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

license-eye has checked 3872 files.

Valid Invalid Ignored Fixed
3030 2 840 0
Click to see the invalid file list
  • e2e/playwright.config.ts
  • e2e/qdev-full-flow.spec.ts
Use this command to fix any missing license headers
```bash

docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header fix

</details>

@@ -0,0 +1,22 @@
import { defineConfig } from '@playwright/test';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import { defineConfig } from '@playwright/test';
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import { defineConfig } from '@playwright/test';

@@ -0,0 +1,231 @@
import { test, expect, request, Page } from '@playwright/test';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import { test, expect, request, Page } from '@playwright/test';
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import { test, expect, request, Page } from '@playwright/test';

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/plugins This issue or PR relates to plugins improvement pr-type/feature-development This PR is to develop a new feature size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant