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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -117,7 +117,7 @@ When you select **Auto** as your series mapping mode, the following options are
 | 
			
		|||
| Option | Description |
 | 
			
		||||
| ------ | ----------- |
 | 
			
		||||
| 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). |
 | 
			
		||||
 | 
			
		||||
<!-- prettier-ignore-end -->
 | 
			
		||||
| 
						 | 
				
			
			@ -145,7 +145,7 @@ In **Manual** mode, these fields are required:
 | 
			
		|||
 | 
			
		||||
#### 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   |
 | 
			
		||||
| --- | --- | --- |
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,6 +8,7 @@ import { PlotConfigBuilder } from '../types';
 | 
			
		|||
export interface ScaleProps {
 | 
			
		||||
  scaleKey: string;
 | 
			
		||||
  isTime?: boolean;
 | 
			
		||||
  auto?: boolean;
 | 
			
		||||
  min?: number | null;
 | 
			
		||||
  max?: number | null;
 | 
			
		||||
  softMin?: number | null;
 | 
			
		||||
| 
						 | 
				
			
			@ -32,6 +33,7 @@ export class UPlotScaleBuilder extends PlotConfigBuilder<ScaleProps, Scale> {
 | 
			
		|||
  getConfig(): Scale {
 | 
			
		||||
    let {
 | 
			
		||||
      isTime,
 | 
			
		||||
      auto,
 | 
			
		||||
      scaleKey,
 | 
			
		||||
      min: hardMin,
 | 
			
		||||
      max: hardMax,
 | 
			
		||||
| 
						 | 
				
			
			@ -256,7 +258,7 @@ export class UPlotScaleBuilder extends PlotConfigBuilder<ScaleProps, Scale> {
 | 
			
		|||
      return minMax;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let auto = !isTime && !hasFixedRange;
 | 
			
		||||
    auto ??= !isTime && !hasFixedRange;
 | 
			
		||||
 | 
			
		||||
    if (isBooleanUnit(scaleKey)) {
 | 
			
		||||
      auto = false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -182,10 +182,11 @@ export const SeriesEditor = ({
 | 
			
		|||
                  filter: (field) =>
 | 
			
		||||
                    (mapping === SeriesMapping.Auto ||
 | 
			
		||||
                      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,
 | 
			
		||||
                  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);
 | 
			
		||||
 | 
			
		||||
  let xField = xySeries[0].x.field;
 | 
			
		||||
  let xIsTime = xField.type === FieldType.time;
 | 
			
		||||
 | 
			
		||||
  let fieldConfig = xField.config;
 | 
			
		||||
  let customConfig = fieldConfig.custom;
 | 
			
		||||
| 
						 | 
				
			
			@ -305,7 +306,8 @@ export const prepConfig = (xySeries: XYSeries[], theme: GrafanaTheme2) => {
 | 
			
		|||
 | 
			
		||||
  builder.addScale({
 | 
			
		||||
    scaleKey: 'x',
 | 
			
		||||
    isTime: false,
 | 
			
		||||
    isTime: xIsTime,
 | 
			
		||||
    auto: true,
 | 
			
		||||
    orientation: ScaleOrientation.Horizontal,
 | 
			
		||||
    direction: ScaleDirection.Right,
 | 
			
		||||
    distribution: scaleDistr?.type,
 | 
			
		||||
| 
						 | 
				
			
			@ -317,6 +319,7 @@ export const prepConfig = (xySeries: XYSeries[], theme: GrafanaTheme2) => {
 | 
			
		|||
    softMax: customConfig?.axisSoftMax,
 | 
			
		||||
    centeredZero: customConfig?.axisCenteredZero,
 | 
			
		||||
    decimals: fieldConfig.decimals,
 | 
			
		||||
    range: xIsTime ? (u, min, max) => [min, max] : undefined,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  // why does this fall back to '' instead of null or undef?
 | 
			
		||||
| 
						 | 
				
			
			@ -339,13 +342,14 @@ export const prepConfig = (xySeries: XYSeries[], theme: GrafanaTheme2) => {
 | 
			
		|||
 | 
			
		||||
  builder.addAxis({
 | 
			
		||||
    scaleKey: 'x',
 | 
			
		||||
    isTime: xIsTime,
 | 
			
		||||
    placement: customConfig?.axisPlacement !== AxisPlacement.Hidden ? AxisPlacement.Bottom : AxisPlacement.Hidden,
 | 
			
		||||
    show: customConfig?.axisPlacement !== AxisPlacement.Hidden,
 | 
			
		||||
    grid: { show: customConfig?.axisGridShow },
 | 
			
		||||
    border: { show: customConfig?.axisBorderShow },
 | 
			
		||||
    theme,
 | 
			
		||||
    label: xAxisLabel,
 | 
			
		||||
    formatValue: (v, decimals) => formattedValueToString(xField.display!(v, decimals)),
 | 
			
		||||
    formatValue: xIsTime ? undefined : (v, decimals) => formattedValueToString(xField.display!(v, decimals)),
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  xySeries.forEach((s, si) => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,8 +62,8 @@ export function prepSeries(
 | 
			
		|||
 | 
			
		||||
    let xMatcher = getFieldMatcher(
 | 
			
		||||
      seriesCfg.x?.matcher ?? {
 | 
			
		||||
        id: FieldMatcherID.byType,
 | 
			
		||||
        options: 'number',
 | 
			
		||||
        id: FieldMatcherID.byTypes,
 | 
			
		||||
        options: new Set(['number', 'time']),
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
    let yMatcher = getFieldMatcher(
 | 
			
		||||
| 
						 | 
				
			
			@ -89,11 +89,16 @@ export function prepSeries(
 | 
			
		|||
 | 
			
		||||
      let frameSeries: XYSeries[] = [];
 | 
			
		||||
 | 
			
		||||
      // only grabbing number fields (exclude time, string, enum, other)
 | 
			
		||||
      let onlyNumFields = frame.fields.filter((field) => field.type === FieldType.number);
 | 
			
		||||
      let onlyNumTimeFields = frame.fields.filter(
 | 
			
		||||
        (field) => field.type === FieldType.number || field.type === FieldType.time
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
      // 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 =
 | 
			
		||||
        colorMatcher != null
 | 
			
		||||
          ? onlyNumFields.find((field) => field !== x && colorMatcher!(field, frame, frames))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue