mahendrapaipuri / grafana-dashboard-reporter-app

A Grafana plugin app to create PDF reports of dashboards
Apache License 2.0
48 stars 5 forks source link

Report creation error #108

Closed AndryAsh closed 1 month ago

AndryAsh commented 1 month ago

Installed grafana enterprise Version 11.2.0 (commit: c57667e4481563f5e6cf945b03bc0626caa4dbeb, branch: HEAD, enterprise-commit: 62cabea77752ae7ad849ef033952828565c4971b0c). Installed grafana-image-renderer plugin v.3.11.4. Installed Grafana Dashboard Reporter plugin v.1.6.0. Created a service account and token. Set up a link to the dashboard - http://10.2.0.228:3000/api/plugins/mahendrapaipuri-dashboardreporter-app/resources/report?dashUid=edwsangm9l8n4d/url-003-10-2-0-85?apitoken=. When I try to create a report, I get an error - error generating report In the log grafana messages:

logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T15:55:26.78676079+03:00 level=info msg="generate report using config: Theme: light; Orientation: portrait; Layout: simple; Dashboard Mode: default; Time Zone: ; Encoded Logo: ; Max Renderer Workers: 2; Max Browser Workers: 2; Remote Chrome Addr: ; App URL: unset; TLS Skip verifiy: false; Included Panel IDs: all; Excluded Panel IDs: none" endpoint=callResource pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T15:55:26.787374763+03:00 level=info msg="generate report using local chrome" endpoint=callResource pluginID=mahendrapaipuri-dashboardreporter-app
logger=context userId=2 orgId=1 uname=sa-1-sa-dashboard t=2024-09-09T15:55:26.917542976+03:00 level=info msg="Request Completed" method=GET path=/api/dashboards/uid/edwsangm9l8n4d/url-003-10-2-0-85 status=404 remote_addr=[::1] time_ms=129 duration=129.837502ms size=24 referer= handler=notfound status_source=server
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T15:55:28.732443158+03:00 level=warn msg="error fetching dashboard from browser, falling back to API" error="error fetching dashboard from browser: javascript did not return any dashboard data" pluginID=mahendrapaipuri-dashboardreporter-app endpoint=callResource
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T15:55:28.732722188+03:00 level=warn msg="error(s) fetching dashboard model and data" dash_uid="edwsangm9l8n4d/url-003-10-2-0-85?apitoken=<token>" endpoint=callResource err="error fetching dashboard: error fetching dashboard from API: dashboard request does not return 200 OK: URL: http://localhost:3000/api/dashboards/uid/edwsangm9l8n4d/url-003-10-2-0-85?apitoken=<token>. Status: 404 Not Found, message: {\"message\":\"Not found\"}\n" pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T15:55:28.732926659+03:00 level=error msg="error generating report" endpoint=callResource err="error fetching dashboard edwsangm9l8n4d/url-003-10-2-0-85?apitoken=<token>: error fetching dashboard: error fetching dashboard from API: dashboard request does not return 200 OK: URL: http://localhost:3000/api/dashboards/uid/edwsangm9l8n4d/url-003-10-2-0-85?apitoken=<token>. Status: 404 Not Found, message: {\"message\":\"Not found\"}\n" pluginID=mahendrapaipuri-dashboardreporter-app
logger=context userId=1 orgId=1 uname=admin t=2024-09-09T15:55:28.733604553+03:00 level=error msg="Request Completed" method=GET path=/api/plugins/mahendrapaipuri-dashboardreporter-app/resources/report status=500 remote_addr=192.168.201.39 time_ms=2098 duration=2.098309795s size=24 referer= handler=/api/plugins/:pluginId/resources/* status_source=downstream
logger=context userId=0 orgId=0 uname= t=2024-09-09T15:55:29.535347652+03:00 level=info msg="Request Completed" method=GET path=/favicon.ico status=302 remote_addr=192.168.201.39 time_ms=0 duration=114.015µs size=29 referer= handler=public-assets status_source=server

Please help me understand the problem.

mahendrapaipuri commented 1 month ago

Hey @AndryAsh

You are not supposed to send API token from query parameters. You need to configure the token in the plugin's confirguration Service Account Token in Grafana UI. More details in docs.

As you are using more recent version of Grafana, you can skip this step by enabling externalServiceAccounts feature flag. Please check this section on how to do it.

AndryAsh commented 1 month ago

Created service account tocken Added to the file /etc/grafana/grafana.ini [feature_toggles] enable = accessControlOnCall,idForwarding,externalServiceAccounts I have entered the token in the plugin settings. I still get an error when generating the report.

Please write step by step how to set up correctly.

mahendrapaipuri commented 1 month ago

I think your URL is not well formatted: http://10.2.0.228:3000/api/plugins/mahendrapaipuri-dashboardreporter-app/resources/report?dashUid=edwsangm9l8n4d/url-003-10-2-0-85?apitoken=glsa_f6PkKITd3IpaF9jCKLzxieEkiGyxxiO2_37947d88. What is your dashboard UID? Your dashbord UID should not have /url-003-10-2-0-85. If it does, you will need to escape / character. Assuming your dashboard UID is edwsangm9l8n4d, the URL must be http://10.2.0.228:3000/api/plugins/mahendrapaipuri-dashboardreporter-app/resources/report?dashUid=edwsangm9l8n4d

AndryAsh commented 1 month ago

Yes, that's how it's done, but it's giving an error in the log: logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09-09T17:17:58.887727259+03:00 level=error msg=“error generating report” endpoint=callResource err=“error fetching dashboard edwsangm9l8n4d: error building dashboard model: browser: no dashboard data found” pluginID=mahendrapaipuri-dashboardreporter-app It looks like the plugin can't find the dashboard by UID. I found the UID of the dashboard in the JSON Model dashboard: “timepicker": {}, “timezone": {}, ‘browser’, “title": “URL-003 (10.2.0.85)”, “uid": ‘edwsangm9l8n4d’, “version": 19, “weekStart": “”

mahendrapaipuri commented 1 month ago

Could you please set Grafana in debug mode, restart Grafana and share the logs right from the point where plugin is loaded till the report generation error?

AndryAsh commented 1 month ago

I don't know how to run grafana in debug mode, please advise.

mahendrapaipuri commented 1 month ago

You will need to find [log] section in grafana.ini, if already exists or add the section if it doesnt with following:

[log]
level= debug

Here are the docs

AndryAsh commented 1 month ago

Here is grafana's log from the time it was loaded until the end of the plugin execution

logger=settings t=2024-09-09T17:58:20.782471324+03:00 level=info msg="Starting Grafana" version=11.2.0 commit=c57667e4481563f5e6cf945b03bc0626caa4dbeb branch=HEAD compiled=2024-09-09T17:58:20+03:00
logger=settings t=2024-09-09T17:58:20.784065913+03:00 level=info msg="Config loaded from" file=/usr/share/grafana/conf/defaults.ini
logger=settings t=2024-09-09T17:58:20.784238132+03:00 level=info msg="Config loaded from" file=/etc/grafana/grafana.ini
logger=settings t=2024-09-09T17:58:20.784386491+03:00 level=info msg="Config overridden from command line" arg="default.paths.data=/var/lib/grafana"
logger=settings t=2024-09-09T17:58:20.784634018+03:00 level=info msg="Config overridden from command line" arg="default.paths.logs=/var/log/grafana"
logger=settings t=2024-09-09T17:58:20.784815144+03:00 level=info msg="Config overridden from command line" arg="default.paths.plugins=/var/lib/grafana/plugins"
logger=settings t=2024-09-09T17:58:20.78497767+03:00 level=info msg="Config overridden from command line" arg="default.paths.provisioning=/etc/grafana/provisioning"
logger=settings t=2024-09-09T17:58:20.785137654+03:00 level=info msg=Target target=[all]
logger=settings t=2024-09-09T17:58:20.785310794+03:00 level=info msg="Path Home" path=/usr/share/grafana
logger=settings t=2024-09-09T17:58:20.785484882+03:00 level=info msg="Path Data" path=/var/lib/grafana
logger=settings t=2024-09-09T17:58:20.78564378+03:00 level=info msg="Path Logs" path=/var/log/grafana
logger=settings t=2024-09-09T17:58:20.785828161+03:00 level=info msg="Path Plugins" path=/var/lib/grafana/plugins
logger=settings t=2024-09-09T17:58:20.786007079+03:00 level=info msg="Path Provisioning" path=/etc/grafana/provisioning
logger=settings t=2024-09-09T17:58:20.78616456+03:00 level=info msg="App mode production"
logger=featuremgmt t=2024-09-09T17:58:20.78748767+03:00 level=info msg=FeatureToggles cloudWatchCrossAccountQuerying=true externalServiceAccounts=true addFieldFromCalculationStatFunctions=true nestedFolders=true panelMonitoring=true cloudWatchNewLabelParsing=true prometheusConfigOverhaulAuth=true alertingNoDataErrorExecution=true idForwarding=true logsContextDatasourceUi=true groupToNestedTableTransformation=true logsExploreTableVisualisation=true tlsMemcached=true formatString=true ssoSettingsApi=true dashgpt=true publicDashboards=true alertingInsights=true kubernetesPlaylists=true prometheusAzureOverrideAudience=true prometheusMetricEncyclopedia=true recoveryThreshold=true exploreMetrics=true angularDeprecationUI=true lokiMetricDataplane=true lokiQuerySplitting=true annotationPermissionUpdate=true logsInfiniteScrolling=true recordedQueriesMulti=true influxdbBackendMigration=true correlations=true lokiStructuredMetadata=true alertingSimplifiedRouting=true logRowsPopoverMenu=true prometheusDataplane=true autoMigrateXYChartPanel=true lokiQueryHints=true accessControlOnCall=true dataplaneFrontendFallback=true awsAsyncQueryCaching=true transformationsRedesign=true transformationsVariableSupport=true managedPluginsInstall=true topnav=true cloudWatchRoundUpEndTime=true
logger=sqlstore t=2024-09-09T17:58:20.787685942+03:00 level=info msg="Connecting to DB" dbtype=sqlite3
logger=migrator t=2024-09-09T17:58:20.80856908+03:00 level=info msg="Locking database"
logger=migrator t=2024-09-09T17:58:20.808636812+03:00 level=info msg="Starting DB migrations"
logger=migrator t=2024-09-09T17:58:20.853452881+03:00 level=info msg="migrations completed" performed=0 skipped=689 duration=2.673491ms
logger=migrator t=2024-09-09T17:58:20.855323791+03:00 level=info msg="Unlocking database"
logger=licensing t=2024-09-09T17:58:20.856823125+03:00 level=info msg="Validated license token" appURL=http://localhost:3000/ source=disk status=NotFound
logger=secrets t=2024-09-09T17:58:20.856961884+03:00 level=info msg="Envelope encryption state" enabled=true currentprovider=secretKey.v1
logger=plugins.registration t=2024-09-09T17:58:25.838439015+03:00 level=info msg="Plugin registered" pluginId=grafana-image-renderer
logger=plugin.angulardetectorsprovider.dynamic t=2024-09-09T17:58:25.843577545+03:00 level=info msg="Restored cache from database" duration=3.590406ms
logger=plugin.store t=2024-09-09T17:58:25.85040583+03:00 level=info msg="Loading plugins..."
logger=plugins.registration t=2024-09-09T17:58:25.947624283+03:00 level=error msg="Could not register plugin" pluginId=xychart error="plugin xychart is already registered"
logger=plugins.initialization t=2024-09-09T17:58:25.947723079+03:00 level=error msg="Could not initialize plugin" pluginId=xychart error="plugin xychart is already registered"
logger=plugins.registration t=2024-09-09T17:58:27.338290116+03:00 level=info msg="Plugin registered" pluginId=alexanderzobnin-zabbix-app
logger=plugin.alexanderzobnin-zabbix-datasource t=2024-09-09T17:58:27.351150825+03:00 level=info msg=Profiler enabled=false
logger=plugins.registration t=2024-09-09T17:58:27.353817033+03:00 level=info msg="Plugin registered" pluginId=alexanderzobnin-zabbix-datasource
logger=plugins.registration t=2024-09-09T17:58:27.353949067+03:00 level=info msg="Plugin registered" pluginId=alexanderzobnin-zabbix-triggers-panel
logger=plugin.signature.validator t=2024-09-09T17:58:27.359821345+03:00 level=warn msg="Permitting unsigned plugin. This is not recommended" pluginId=mahendrapaipuri-dashboardreporter-app
logger=plugins.registration t=2024-09-09T17:58:27.436234642+03:00 level=info msg="Plugin registered" pluginId=mahendrapaipuri-dashboardreporter-app
logger=plugin.store t=2024-09-09T17:58:27.436328153+03:00 level=info msg="Plugins loaded" count=58 duration=1.585925786s
logger=caching.service t=2024-09-09T17:58:27.439549505+03:00 level=info msg="Caching service is disabled"
logger=query_data t=2024-09-09T17:58:27.448221478+03:00 level=info msg="Query Service initialization"
logger=live.push_http t=2024-09-09T17:58:27.460322327+03:00 level=info msg="Live Push Gateway initialization"
logger=ngalert.notifier.alertmanager org=1 t=2024-09-09T17:58:27.467181171+03:00 level=info msg="Applying new configuration to Alertmanager" configHash=d2c56faca6af2a5772ff4253222f7386
logger=ngalert.state.manager t=2024-09-09T17:58:27.475896209+03:00 level=info msg="Running in alternative execution of Error/NoData mode"
logger=infra.usagestats.collector t=2024-09-09T17:58:27.482359669+03:00 level=info msg="registering usage stat providers" usageStatsProvidersLen=3
logger=server t=2024-09-09T17:58:27.482532425+03:00 level=info msg="Writing PID file" path=/run/grafana/grafana-server.pid pid=3023
logger=provisioning.alerting t=2024-09-09T17:58:27.484971159+03:00 level=info msg="starting to provision alerting"
logger=provisioning.alerting t=2024-09-09T17:58:27.485029338+03:00 level=info msg="finished to provision alerting"
logger=grafanaStorageLogger t=2024-09-09T17:58:27.485725369+03:00 level=info msg="Storage starting"
logger=ngalert.state.manager t=2024-09-09T17:58:27.485901529+03:00 level=info msg="Warming state cache for startup"
logger=provisioning.dashboard t=2024-09-09T17:58:27.487985365+03:00 level=info msg="starting to provision dashboards"
logger=provisioning.dashboard t=2024-09-09T17:58:27.488097663+03:00 level=info msg="finished to provision dashboards"
logger=http.server t=2024-09-09T17:58:27.494004643+03:00 level=info msg="HTTP Server Listen" address=[::]:3000 protocol=http subUrl= socket=
logger=ngalert.multiorg.alertmanager t=2024-09-09T17:58:27.494742213+03:00 level=info msg="Starting MultiOrg Alertmanager"
logger=report t=2024-09-09T17:58:27.501991363+03:00 level=warn msg="Scheduling and sending of reports disabled, SMTP is not configured and enabled. Configure SMTP to enable."
logger=ngalert.state.manager t=2024-09-09T17:58:27.557617273+03:00 level=info msg="State cache has been initialized" states=0 duration=71.707977ms
logger=ngalert.scheduler t=2024-09-09T17:58:27.55775571+03:00 level=info msg="Starting scheduler" tickInterval=10s maxAttempts=1
logger=ticker t=2024-09-09T17:58:27.557886311+03:00 level=info msg=starting first_tick=2024-09-09T17:58:30+03:00
logger=grafana.update.checker t=2024-09-09T17:58:27.594013913+03:00 level=info msg="Update check succeeded" duration=107.321619ms
logger=plugins.update.checker t=2024-09-09T17:58:27.594024664+03:00 level=info msg="Update check succeeded" duration=108.296504ms
logger=grafana-apiserver t=2024-09-09T17:58:28.059912834+03:00 level=info msg="Adding GroupVersion playlist.grafana.app v0alpha1 to ResourceManager"
logger=grafana-apiserver t=2024-09-09T17:58:28.061197825+03:00 level=info msg="Adding GroupVersion featuretoggle.grafana.app v0alpha1 to ResourceManager"
logger=context userId=1 orgId=1 uname=admin t=2024-09-09T17:58:32.544858814+03:00 level=info msg="Request Completed" method=GET path=/api/live/ws status=-1 remote_addr=192.168.201.39 time_ms=19 duration=19.1931ms size=0 referer= handler=/api/live/ws status_source=server
logger=live t=2024-09-09T17:58:32.551109554+03:00 level=info msg="Initialized channel handler" channel=grafana/dashboard/uid/edwsangm9l8n4d address=grafana/dashboard/uid/edwsangm9l8n4d
logger=context userId=1 orgId=1 uname=admin t=2024-09-09T18:00:06.468886402+03:00 level=info msg="Request Completed" method=GET path=/api/live/ws status=-1 remote_addr=192.168.201.39 time_ms=7 duration=7.056901ms size=0 referer= handler=/api/live/ws status_source=server
logger=infra.usagestats t=2024-09-09T18:00:12.501297497+03:00 level=info msg="Usage stats are ready to report"
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T18:00:13.349446791+03:00 level=info msg="new instance of plugin app created" endpoint=callResource pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T18:00:13.350720216+03:00 level=info msg="starting plugin with initial config: Theme: light; Orientation: portrait; Layout: simple; Dashboard Mode: default; Time Zone: ; Encoded Logo: ; Max Renderer Workers: 2; Max Browser Workers: 2; Remote Chrome Addr: ; App URL: unset; TLS Skip verifiy: false; Included Panel IDs: all; Excluded Panel IDs: none" endpoint=callResource pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T18:00:14.478069198+03:00 level=info msg="generate report using config: Theme: light; Orientation: portrait; Layout: simple; Dashboard Mode: default; Time Zone: ; Encoded Logo: ; Max Renderer Workers: 2; Max Browser Workers: 2; Remote Chrome Addr: ; App URL: unset; TLS Skip verifiy: false; Included Panel IDs: all; Excluded Panel IDs: none" endpoint=callResource pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T18:00:14.478482901+03:00 level=info msg="generate report using local chrome" endpoint=callResource pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T18:00:16.284539586+03:00 level=warn msg="error fetching dashboard from browser, falling back to API" endpoint=callResource error="error fetching dashboard from browser: javascript did not return any dashboard data" pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T18:00:16.285399321+03:00 level=warn msg="failed to get panels from browser data" endpoint=callResource error="browser: no dashboard data found" pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T18:00:16.285564688+03:00 level=warn msg="error(s) fetching dashboard model and data" dash_uid=edwsangm9l8n4d endpoint=callResource err="error building dashboard model: browser: no dashboard data found" pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T18:00:16.28569275+03:00 level=error msg="error generating report" endpoint=callResource err="error fetching dashboard edwsangm9l8n4d: error building dashboard model: browser: no dashboard data found" pluginID=mahendrapaipuri-dashboardreporter-app
logger=context userId=1 orgId=1 uname=admin t=2024-09-09T18:00:16.28681032+03:00 level=error msg="Request Completed" method=GET path=/api/plugins/mahendrapaipuri-dashboardreporter-app/resources/report status=500 remote_addr=192.168.201.39 time_ms=3013 duration=3.013886833s size=24 referer= handler=/api/plugins/:pluginId/resources/* status_source=downstream
logger=context userId=0 orgId=0 uname= t=2024-09-09T18:00:17.239909536+03:00 level=info msg="Request Completed" method=GET path=/favicon.ico status=302 remote_addr=192.168.201.39 time_ms=0 duration=514.639µs size=29 referer= handler=public-assets status_source=server
logger=server t=2024-09-09T18:00:34.085254397+03:00 level=info msg="Shutdown started" reason="System signal: terminated"
logger=ticker t=2024-09-09T18:00:34.085442021+03:00 level=info msg=stopped last_tick=2024-09-09T18:00:30+03:00
logger=tracing t=2024-09-09T18:00:34.086388536+03:00 level=info msg="Closing tracing"
logger=grafana-apiserver t=2024-09-09T18:00:34.087457442+03:00 level=info msg="StorageObjectCountTracker pruner is exiting"
logger=plugin.alexanderzobnin-zabbix-datasource t=2024-09-09T18:00:34.098207524+03:00 level=error msg="plugin process exited" plugin=/var/lib/grafana/plugins/alexanderzobnin-zabbix-app/gpx_zabbix-plugin_linux_amd64 id=3036 error="signal: terminated"
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-09T18:00:34.101247083+03:00 level=error msg="plugin process exited" plugin=/var/lib/grafana/plugins/mahendrapaipuri-dashboardreporter-app/gpx_dashboardreporter-app_linux_amd64 id=3045 error="signal: terminated"
logger=plugin.grafana-image-renderer t=2024-09-09T18:00:34.11918568+03:00 level=error msg="plugin process exited" plugin=/var/lib/grafana/plugins/grafana-image-renderer/plugin_start_linux_amd64 id=3057 error="signal: terminated"
mahendrapaipuri commented 1 month ago

I dont see any obvious errors. Did you install chromium on Grafana server? If not, could you try installing chromium and retry?

AndryAsh commented 1 month ago

Here is the log file with debug mode enabled. [Uploading grafana.log…]()

AndryAsh commented 1 month ago

Yes, I have installed chromium: apt install chromium dpkg -l | grep chromium ii chromium 90.0.4430.212-1~deb10u1 amd64 web browser ii chromium-common 90.0.4430.212-1~deb10u1 amd64 web browser - common resources used by the chromium packages ii chromium-sandbox 90.0.4430.212-1~deb10u1 amd64 web browser - setuid security sandbox for chromium

mahendrapaipuri commented 1 month ago

Here is the log file with debug mode enabled. Uploading grafana.log…

The log file is not available. Please reupload it.

AndryAsh commented 1 month ago

grafana.log

mahendrapaipuri commented 1 month ago

Can you share your dashboard JSON model?

AndryAsh commented 1 month ago

dashboard.json

mahendrapaipuri commented 1 month ago

I can create the report using your dashboard model using local developmental instance of Grafana.

Can you add this sample dashboard to your Grafana and attempt to generate the report using Report link?

AndryAsh commented 1 month ago

I imported Test Dashboard Collapsed and started creating the report. Result: error generating report

logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T16:22:53.047723142+03:00 level=info msg="generate report using config: Theme: light; Orientation: portrait; Layout: simple; Dashboard Mode: default; Time Zone: ; Encoded Logo: ; Max Renderer Workers: 2; Max Browser Workers: 2; Remote Chrome Addr: ; App URL: unset; TLS Skip verifiy: false; Included Panel IDs: all; Excluded Panel IDs: none" endpoint=callResource pluginID=mahendrapaipuri-dashboardreporter-app logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T16:22:53.04810095+03:00 level=info msg="generate report using local chrome" endpoint=callResource pluginID=mahendrapaipuri-dashboardreporter-app logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T16:22:54.664209474+03:00 level=warn msg="error fetching dashboard from browser, falling back to API" endpoint=callResource error="error fetching dashboard from browser: javascript did not return any dashboard data" pluginID=mahendrapaipuri-dashboardreporter-app logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T16:22:54.665693464+03:00 level=warn msg="failed to get panels from browser data" endpoint=callResource error="browser: no dashboard data found" pluginID=mahendrapaipuri-dashboardreporter-app logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T16:22:54.665913156+03:00 level=warn msg="error(s) fetching dashboard model and data" dash_uid=e472bbf0-140c-4852-a74b-1a4c32202659 endpoint=callResource err="error building dashboard model: browser: no dashboard data found" pluginID=mahendrapaipuri-dashboardreporter-app logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T16:22:54.666079324+03:00 level=error msg="error generating report" pluginID=mahendrapaipuri-dashboardreporter-app endpoint=callResource err="error fetching dashboard e472bbf0-140c-4852-a74b-1a4c32202659: error building dashboard model: browser: no dashboard data found" logger=context userId=1 orgId=1 uname=admin t=2024-09-10T16:22:54.667312359+03:00 level=error msg="Request Completed" method=GET path=/api/plugins/mahendrapaipuri-dashboardreporter-app/resources/report status=500 remote_addr=192.168.201.41 time_ms=1782 duration=1.782890583s size=24 referer= handler=/api/plugins/:pluginId/resources/* status_source=downstream logger=context userId=0 orgId=0 uname= t=2024-09-10T16:22:55.501304133+03:00 level=info msg="Request Completed" method=GET path=/favicon.ico status=302 remote_addr=192.168.201.41 time_ms=0 duration=231.465µs size=29 referer= handler=public-assets status_source=server

mahendrapaipuri commented 1 month ago

Hey, I am out of ideas. Seems like the issue is with chromium on your server. Maybe uninstall and reinstall it again?

jesshmusic commented 1 month ago

I am also having a similar issue. It works on my local but not on our server. I added the sample dashboard and get errors like this:

logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T19:58:15.025917223Z level=warn msg="error fetching dashboard from browser, falling back to API" endpoint=callResource error="error fetching dashboard from browser: javascript did not return any dashboard data" pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T19:58:15.027070068Z level=warn msg="failed to get panels from browser data" endpoint=callResource error="browser: no dashboard data found" pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T19:58:15.02710253Z level=warn msg="error(s) fetching dashboard model and data" dash_uid=e472bbf0-140c-4852-a74b-1a4c32202659 endpoint=callResource err="error building dashboard model: browser: no dashboard data found" pluginID=mahendrapaipuri-dashboardreporter-app
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T19:58:15.027124077Z level=error msg="error generating report" pluginID=mahendrapaipuri-dashboardreporter-app endpoint=callResource err="error fetching dashboard e472bbf0-140c-4852-a74b-1a4c32202659: error building dashboard model: browser: no dashboard data found"
logger=plugin.mahendrapaipuri-dashboardreporter-app t=2024-09-10T19:58:15.027150817Z level=debug msg="Plugin Request Completed" duration=3.692396905s endpoint=callResource pluginID=mahendrapaipuri-dashboardreporter-app status=ok statusSource=plugin
logger=context userId=32 orgId=1 uname=jhendricks@example.comt=2024-09-10T19:58:15.02751837Z level=error msg="Request Completed" method=GET path=/api/plugins/mahendrapaipuri-dashboardreporter-app/resources/report status=500 remote_addr=10.104.2.38 time_ms=3703 duration=3.703377052s size=24 referer= handler=/api/plugins/:pluginId/resources/* status_source=downstream
logger=context userId=0 orgId=0 uname= t=2024-09-10T19:58:15.062016468Z level=info msg="Request Completed" method=GET path=/favicon.ico status=302 remote_addr=10.104.2.38 time_ms=0 duration=418.009µs size=29 referer=https://charting.dev.mosaic.hart
mahendrapaipuri commented 1 month ago

Ok, that is worrying. Could you please share your full environment details? OS, Chromium and Grafana versions? I will try to reproduce it on containérised environment.

AndryAsh commented 1 month ago

Your documentation says that when installing from the git repository the plugin already includes chromium, but after installing it I didn't find it. Can you give me a link to get the version of chromium with which the plugin works normally?

mahendrapaipuri commented 1 month ago

Your documentation says that when installing from the git repository the plugin already includes chromium, but after installing it I didn't find it. Can you give me a link to get the version of chromium with which the plugin works normally?

No, the plugin does not ship any chromium with it. So, not sure where you found this doc. It should work with any chromium.

Could you share your environment details? Your OS version and chromium version. I will try to reproduce it in a container.

AndryAsh commented 1 month ago

OS Debian GNU/Linux 10 (buster) Chromium 90.0.4430.212 built on Debian 10.9, running on Debian 10.13

jesshmusic commented 1 month ago

Our environment is pulled from the grafana 11 Dockerfile, so it looks like alpine 3.19.1 with Node 20

Checking in the Github Workflow it looks like chromium 124.0.6367.78-r0 is installed.

I should note that this runs fine on my local

mahendrapaipuri commented 1 month ago

Well, the plugin uses Grafana's base Dockerfile as well to test in CI and we add chromium using apk add chromium not really controlling the version.

If it is not working on server, I suspect it can be only due to some missing dependencies for chromium. I will try to find to debug with the environment posted @AndryAsh

mahendrapaipuri commented 1 month ago

I can reproduce this issue on Chromium 90 in Debian 10. Not sure why Chromium does not execute JS properly. Anyways I found there is a small regression as well. #109 should fix the regression and when Chromium fails to fetch dashboard, the plugin should go ahead using dashboard from API request.

@AndryAsh Could you please test the patch? You can download plugin artifacts here. Ensure to add execute bits (+x) on gpx_* files in artifacts. I made a test with your environment and it works now. I will try to make a release tmrw!!

AndryAsh commented 1 month ago

I installed the patch, everything works fine - the report is generated Thank you very much!

URL-003 (10.2.0.85).pdf

mahendrapaipuri commented 1 month ago

@AndryAsh Thanks a lot for testing. I will make a release today!!

jhendricks-hart commented 1 month ago

This fixed ours too! Thanks so much!