mirror of https://github.com/grafana/grafana.git
				
				
				
			XYChart: Add support for x=time (#106459)
	
		
			
	
		
	
	
		
			
				
	
				Actionlint / Lint GitHub Actions files (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Code Checks / Validate Backend Configs (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (1/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (2/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (3/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (4/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (5/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (6/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (7/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (8/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (1/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (2/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (3/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (4/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (5/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (6/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (7/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (8/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / All backend unit tests complete (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				CodeQL checks / Analyze (actions) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				CodeQL checks / Analyze (go) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				CodeQL checks / Analyze (javascript) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Lint Frontend / Verify i18n (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Lint Frontend / Lint (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Lint Frontend / Typecheck (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Lint Frontend / Betterer (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Documentation / Build & Verify Docs (push) Waiting to run
				
					Details
				
			
		
			
				
	
				End-to-end tests / Build & Package Grafana (push) Waiting to run
				
					Details
				
			
		
			
				
	
				End-to-end tests / Build E2E test runner (push) Waiting to run
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/dashboards-suite, dashboards-suite (old arch)) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/panels-suite, panels-suite (old arch)) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/smoke-tests-suite, smoke-tests-suite (old arch)) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/various-suite, various-suite (old arch)) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (e2e/dashboards-suite, dashboards-suite) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (e2e/panels-suite, panels-suite) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (e2e/smoke-tests-suite, smoke-tests-suite) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (e2e/various-suite, various-suite) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / All E2E tests complete (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (1) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (2) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (3) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (4) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (5) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (6) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (7) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / All frontend unit tests complete (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (1/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (2/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (3/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (4/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (5/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (6/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (7/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (8/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (1/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (2/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (3/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (4/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (5/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (6/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (7/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (8/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (1/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (2/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (3/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (4/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (5/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (6/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (7/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (8/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / All backend integration tests complete (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				publish-technical-documentation-next / sync (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Reject GitHub secrets / reject-gh-secrets (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Build Release Packages / setup (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:darwin/amd64, darwin-amd64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:darwin/arm64, darwin-arm64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:linux/amd64,deb:grafana:linux/amd64,rpm:grafana:linux/amd64,docker:grafana:linux/amd64,docker:grafana:linux/amd64:ubuntu,npm:grafana,storybook, linux-amd64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:linux/arm/v6,deb:grafana:linux/arm/v6, linux-armv6) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:linux/arm/v7,deb:grafana:linux/arm/v7,docker:grafana:linux/arm/v7,docker:grafana:linux/arm/v7:ubuntu, linux-armv7) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:linux/arm64,deb:grafana:linux/arm64,rpm:grafana:linux/arm64,docker:grafana:linux/arm64,docker:grafana:linux/arm64:ubuntu, linux-arm64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:linux/s390x,deb:grafana:linux/s390x,rpm:grafana:linux/s390x,docker:grafana:linux/s390x,docker:grafana:linux/s390x:ubuntu, linux-s390x) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:windows/amd64,zip:grafana:windows/amd64,msi:grafana:windows/amd64, windows-amd64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:windows/arm64,zip:grafana:windows/arm64, windows-arm64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Run dashboard schema v2 e2e / dashboard-schema-v2-e2e (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Shellcheck / Shellcheck scripts (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Verify Storybook / Verify Storybook (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Swagger generated code / Verify committed API specs match (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Dispatch sync to mirror / dispatch-job (push) Waiting to run
				
					Details
				
			
		
	
				
					
				
			
				
	
				Actionlint / Lint GitHub Actions files (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Code Checks / Validate Backend Configs (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (1/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (2/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (3/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (4/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (5/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (6/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (7/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana (${{ matrix.shard }}) (8/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (1/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (2/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (3/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (4/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (5/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (6/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (7/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (8/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Backend Unit Tests / All backend unit tests complete (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				CodeQL checks / Analyze (actions) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				CodeQL checks / Analyze (go) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				CodeQL checks / Analyze (javascript) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Lint Frontend / Verify i18n (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Lint Frontend / Lint (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Lint Frontend / Typecheck (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Lint Frontend / Betterer (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Documentation / Build & Verify Docs (push) Waiting to run
				
					Details
				
			
		
			
				
	
				End-to-end tests / Build & Package Grafana (push) Waiting to run
				
					Details
				
			
		
			
				
	
				End-to-end tests / Build E2E test runner (push) Waiting to run
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/dashboards-suite, dashboards-suite (old arch)) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/panels-suite, panels-suite (old arch)) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/smoke-tests-suite, smoke-tests-suite (old arch)) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/various-suite, various-suite (old arch)) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (e2e/dashboards-suite, dashboards-suite) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (e2e/panels-suite, panels-suite) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (e2e/smoke-tests-suite, smoke-tests-suite) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / ${{ matrix.suite }} (e2e/various-suite, various-suite) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				End-to-end tests / All E2E tests complete (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (1) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (2) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (3) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (4) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (5) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (6) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (7) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / Unit tests (${{ matrix.chunk }} / 8) (8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Frontend tests / All frontend unit tests complete (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (1/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (2/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (3/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (4/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (5/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (6/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (7/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Sqlite (${{ matrix.shard }}) (8/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (1/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (2/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (3/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (4/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (5/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (6/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (7/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / MySQL (${{ matrix.shard }}) (8/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (1/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (2/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (3/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (4/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (5/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (6/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (7/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / Postgres (${{ matrix.shard }}) (8/8) (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Integration Tests / All backend integration tests complete (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				publish-technical-documentation-next / sync (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Reject GitHub secrets / reject-gh-secrets (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Build Release Packages / setup (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:darwin/amd64, darwin-amd64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:darwin/arm64, darwin-arm64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:linux/amd64,deb:grafana:linux/amd64,rpm:grafana:linux/amd64,docker:grafana:linux/amd64,docker:grafana:linux/amd64:ubuntu,npm:grafana,storybook, linux-amd64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:linux/arm/v6,deb:grafana:linux/arm/v6, linux-armv6) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:linux/arm/v7,deb:grafana:linux/arm/v7,docker:grafana:linux/arm/v7,docker:grafana:linux/arm/v7:ubuntu, linux-armv7) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:linux/arm64,deb:grafana:linux/arm64,rpm:grafana:linux/arm64,docker:grafana:linux/arm64,docker:grafana:linux/arm64:ubuntu, linux-arm64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:linux/s390x,deb:grafana:linux/s390x,rpm:grafana:linux/s390x,docker:grafana:linux/s390x,docker:grafana:linux/s390x:ubuntu, linux-s390x) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:windows/amd64,zip:grafana:windows/amd64,msi:grafana:windows/amd64, windows-amd64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Build Release Packages / ${{ needs.setup.outputs.version }} / ${{ matrix.name }} (targz:grafana:windows/arm64,zip:grafana:windows/arm64, windows-arm64) (push) Blocked by required conditions
				
					Details
				
			
		
			
				
	
				Run dashboard schema v2 e2e / dashboard-schema-v2-e2e (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Shellcheck / Shellcheck scripts (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Verify Storybook / Verify Storybook (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Swagger generated code / Verify committed API specs match (push) Waiting to run
				
					Details
				
			
		
			
				
	
				Dispatch sync to mirror / dispatch-job (push) Waiting to run
				
					Details
				
			
		
	* XYChart: Add support for x=time * prettier * Add time axis demo to provisioned dashboard for XY * Add details about time fields to the documentation --------- Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
This commit is contained in:
		
							parent
							
								
									17952d45e4
								
							
						
					
					
						commit
						cf8e3bf7d4
					
				
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -65,7 +65,7 @@ XY charts provide a way to visualize arbitrary x and y values in a graph so that | ||||||
| 
 | 
 | ||||||
| ## Supported data formats | ## Supported data formats | ||||||
| 
 | 
 | ||||||
| You can use any type of tabular data with at least two numeric fields in an xy chart. This type of visualization doesn't require time data. | You can use any type of tabular data with at least two numeric fields in an xy chart. The x field can be a time field. This type of visualization doesn't require time data, but it can be used. | ||||||
| 
 | 
 | ||||||
| ## Configuration options | ## Configuration options | ||||||
| 
 | 
 | ||||||
|  | @ -117,7 +117,7 @@ When you select **Auto** as your series mapping mode, the following options are | ||||||
| | Option | Description | | | Option | Description | | ||||||
| | ------ | ----------- | | | ------ | ----------- | | ||||||
| | Frame | By default, an xy chart displays all data frames. You can filter to select only one frame. | | | Frame | By default, an xy chart displays all data frames. You can filter to select only one frame. | | ||||||
| | [X field](#x-field) | Select which field or fields x represents. By default, this is the first number field in each data frame. For an example of this in **Auto** mode, refer to the [X field section](#x-field). | | | [X field](#x-field) | Select which field or fields x represents. By default, this is the first number or time field in each data frame. For an example of this in **Auto** mode, refer to the [X field section](#x-field). | | ||||||
| | [Y field](#y-field) | After the x-field is set, by default, all the remaining number fields in the data frame are designated as the y-fields. You can use this option to explicitly choose which fields to use for y. For more information on how to use this in **Auto** mode, refer to the [Y field section](#y-field). | | | [Y field](#y-field) | After the x-field is set, by default, all the remaining number fields in the data frame are designated as the y-fields. You can use this option to explicitly choose which fields to use for y. For more information on how to use this in **Auto** mode, refer to the [Y field section](#y-field). | | ||||||
| 
 | 
 | ||||||
| <!-- prettier-ignore-end --> | <!-- prettier-ignore-end --> | ||||||
|  | @ -145,7 +145,7 @@ In **Manual** mode, these fields are required: | ||||||
| 
 | 
 | ||||||
| #### X field | #### X field | ||||||
| 
 | 
 | ||||||
| In **Auto** series mapping mode, select which field or fields x represents. By default, this is the first number field in each data frame. For example, you enter the following CSV content: | In **Auto** series mapping mode, select which field or fields x represents. By default, this is the first number or time field in each data frame. For example, you enter the following CSV content: | ||||||
| 
 | 
 | ||||||
| | a   | b   | c   | | | a   | b   | c   | | ||||||
| | --- | --- | --- | | | --- | --- | --- | | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ import { PlotConfigBuilder } from '../types'; | ||||||
| export interface ScaleProps { | export interface ScaleProps { | ||||||
|   scaleKey: string; |   scaleKey: string; | ||||||
|   isTime?: boolean; |   isTime?: boolean; | ||||||
|  |   auto?: boolean; | ||||||
|   min?: number | null; |   min?: number | null; | ||||||
|   max?: number | null; |   max?: number | null; | ||||||
|   softMin?: number | null; |   softMin?: number | null; | ||||||
|  | @ -32,6 +33,7 @@ export class UPlotScaleBuilder extends PlotConfigBuilder<ScaleProps, Scale> { | ||||||
|   getConfig(): Scale { |   getConfig(): Scale { | ||||||
|     let { |     let { | ||||||
|       isTime, |       isTime, | ||||||
|  |       auto, | ||||||
|       scaleKey, |       scaleKey, | ||||||
|       min: hardMin, |       min: hardMin, | ||||||
|       max: hardMax, |       max: hardMax, | ||||||
|  | @ -256,7 +258,7 @@ export class UPlotScaleBuilder extends PlotConfigBuilder<ScaleProps, Scale> { | ||||||
|       return minMax; |       return minMax; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     let auto = !isTime && !hasFixedRange; |     auto ??= !isTime && !hasFixedRange; | ||||||
| 
 | 
 | ||||||
|     if (isBooleanUnit(scaleKey)) { |     if (isBooleanUnit(scaleKey)) { | ||||||
|       auto = false; |       auto = false; | ||||||
|  |  | ||||||
|  | @ -182,10 +182,11 @@ export const SeriesEditor = ({ | ||||||
|                   filter: (field) => |                   filter: (field) => | ||||||
|                     (mapping === SeriesMapping.Auto || |                     (mapping === SeriesMapping.Auto || | ||||||
|                       field.state?.origin?.frameIndex === series.frame?.matcher.options) && |                       field.state?.origin?.frameIndex === series.frame?.matcher.options) && | ||||||
|                     field.type === FieldType.number && |                     (field.type === FieldType.number || field.type === FieldType.time) && | ||||||
|                     !field.config.custom?.hideFrom?.viz, |                     !field.config.custom?.hideFrom?.viz, | ||||||
|                   baseNameMode, |                   baseNameMode, | ||||||
|                   placeholderText: mapping === SeriesMapping.Auto ? 'First number field in each frame' : undefined, |                   placeholderText: | ||||||
|  |                     mapping === SeriesMapping.Auto ? 'First number or time field in each frame' : undefined, | ||||||
|                 }, |                 }, | ||||||
|               }} |               }} | ||||||
|             /> |             /> | ||||||
|  |  | ||||||
|  | @ -298,6 +298,7 @@ export const prepConfig = (xySeries: XYSeries[], theme: GrafanaTheme2) => { | ||||||
|   builder.setMode(2); |   builder.setMode(2); | ||||||
| 
 | 
 | ||||||
|   let xField = xySeries[0].x.field; |   let xField = xySeries[0].x.field; | ||||||
|  |   let xIsTime = xField.type === FieldType.time; | ||||||
| 
 | 
 | ||||||
|   let fieldConfig = xField.config; |   let fieldConfig = xField.config; | ||||||
|   let customConfig = fieldConfig.custom; |   let customConfig = fieldConfig.custom; | ||||||
|  | @ -305,7 +306,8 @@ export const prepConfig = (xySeries: XYSeries[], theme: GrafanaTheme2) => { | ||||||
| 
 | 
 | ||||||
|   builder.addScale({ |   builder.addScale({ | ||||||
|     scaleKey: 'x', |     scaleKey: 'x', | ||||||
|     isTime: false, |     isTime: xIsTime, | ||||||
|  |     auto: true, | ||||||
|     orientation: ScaleOrientation.Horizontal, |     orientation: ScaleOrientation.Horizontal, | ||||||
|     direction: ScaleDirection.Right, |     direction: ScaleDirection.Right, | ||||||
|     distribution: scaleDistr?.type, |     distribution: scaleDistr?.type, | ||||||
|  | @ -317,6 +319,7 @@ export const prepConfig = (xySeries: XYSeries[], theme: GrafanaTheme2) => { | ||||||
|     softMax: customConfig?.axisSoftMax, |     softMax: customConfig?.axisSoftMax, | ||||||
|     centeredZero: customConfig?.axisCenteredZero, |     centeredZero: customConfig?.axisCenteredZero, | ||||||
|     decimals: fieldConfig.decimals, |     decimals: fieldConfig.decimals, | ||||||
|  |     range: xIsTime ? (u, min, max) => [min, max] : undefined, | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   // why does this fall back to '' instead of null or undef?
 |   // why does this fall back to '' instead of null or undef?
 | ||||||
|  | @ -339,13 +342,14 @@ export const prepConfig = (xySeries: XYSeries[], theme: GrafanaTheme2) => { | ||||||
| 
 | 
 | ||||||
|   builder.addAxis({ |   builder.addAxis({ | ||||||
|     scaleKey: 'x', |     scaleKey: 'x', | ||||||
|  |     isTime: xIsTime, | ||||||
|     placement: customConfig?.axisPlacement !== AxisPlacement.Hidden ? AxisPlacement.Bottom : AxisPlacement.Hidden, |     placement: customConfig?.axisPlacement !== AxisPlacement.Hidden ? AxisPlacement.Bottom : AxisPlacement.Hidden, | ||||||
|     show: customConfig?.axisPlacement !== AxisPlacement.Hidden, |     show: customConfig?.axisPlacement !== AxisPlacement.Hidden, | ||||||
|     grid: { show: customConfig?.axisGridShow }, |     grid: { show: customConfig?.axisGridShow }, | ||||||
|     border: { show: customConfig?.axisBorderShow }, |     border: { show: customConfig?.axisBorderShow }, | ||||||
|     theme, |     theme, | ||||||
|     label: xAxisLabel, |     label: xAxisLabel, | ||||||
|     formatValue: (v, decimals) => formattedValueToString(xField.display!(v, decimals)), |     formatValue: xIsTime ? undefined : (v, decimals) => formattedValueToString(xField.display!(v, decimals)), | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   xySeries.forEach((s, si) => { |   xySeries.forEach((s, si) => { | ||||||
|  |  | ||||||
|  | @ -62,8 +62,8 @@ export function prepSeries( | ||||||
| 
 | 
 | ||||||
|     let xMatcher = getFieldMatcher( |     let xMatcher = getFieldMatcher( | ||||||
|       seriesCfg.x?.matcher ?? { |       seriesCfg.x?.matcher ?? { | ||||||
|         id: FieldMatcherID.byType, |         id: FieldMatcherID.byTypes, | ||||||
|         options: 'number', |         options: new Set(['number', 'time']), | ||||||
|       } |       } | ||||||
|     ); |     ); | ||||||
|     let yMatcher = getFieldMatcher( |     let yMatcher = getFieldMatcher( | ||||||
|  | @ -89,11 +89,16 @@ export function prepSeries( | ||||||
| 
 | 
 | ||||||
|       let frameSeries: XYSeries[] = []; |       let frameSeries: XYSeries[] = []; | ||||||
| 
 | 
 | ||||||
|       // only grabbing number fields (exclude time, string, enum, other)
 |       let onlyNumTimeFields = frame.fields.filter( | ||||||
|       let onlyNumFields = frame.fields.filter((field) => field.type === FieldType.number); |         (field) => field.type === FieldType.number || field.type === FieldType.time | ||||||
|  |       ); | ||||||
| 
 | 
 | ||||||
|       // only one of these per frame
 |       // only one of these per frame
 | ||||||
|       let x = onlyNumFields.find((field) => xMatcher(field, frame, frames)); |       let x = onlyNumTimeFields.find((field) => xMatcher(field, frame, frames)); | ||||||
|  | 
 | ||||||
|  |       // only grabbing number fields (exclude time, string, enum, other)
 | ||||||
|  |       let onlyNumFields = onlyNumTimeFields.filter((field) => field.type === FieldType.number); | ||||||
|  | 
 | ||||||
|       let color = |       let color = | ||||||
|         colorMatcher != null |         colorMatcher != null | ||||||
|           ? onlyNumFields.find((field) => field !== x && colorMatcher!(field, frame, frames)) |           ? onlyNumFields.find((field) => field !== x && colorMatcher!(field, frame, frames)) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue