Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ERROR SyntaxError: Unexpected token < in JSON at position 0 #134

Closed
Sandaru48 opened this issue Jan 3, 2021 · 3 comments
Closed

ERROR SyntaxError: Unexpected token < in JSON at position 0 #134

Sandaru48 opened this issue Jan 3, 2021 · 3 comments
Labels

Comments

@Sandaru48
Copy link

Describe the bug
I'm trying to get Grafana dashboard to slack API using hubot. Once tyoe @Jarvis-bot graf list, its giving following error

ubuntu@ubuntu:~/hubot$ HUBOT_SLACK_TOKEN=xoxb-XXXXXXXXXXXXXXXXXXXX ./bin/hubot --adapter slack
audited 168 packages in 4.264s

2 packages are looking for funding
run npm fund for details

found 0 vulnerabilities

[Sun Jan 03 2021 08:15:18 GMT+0000 (Coordinated Universal Time)] INFO hubot-slack adapter v4.8.1
warn: SlackDataStore is deprecated and will be removed in the next major version. See project documentation for a migration guide.
warn: SlackDataStore is deprecated and will be removed in the next major version. See project documentation for a migration guide.
[Sun Jan 03 2021 08:15:19 GMT+0000 (Coordinated Universal Time)] INFO Logged in as @Jarvis-bot in workspace Team-PSMT
[Sun Jan 03 2021 08:15:20 GMT+0000 (Coordinated Universal Time)] INFO Connected to Slack RTM
[Sun Jan 03 2021 08:15:20 GMT+0000 (Coordinated Universal Time)] INFO hubot-redis-brain: Using default redis on localhost:6379
[Sun Jan 03 2021 08:15:21 GMT+0000 (Coordinated Universal Time)] INFO hubot-redis-brain: Data for hubot brain retrieved from Redis
[Sun Jan 03 2021 08:16:06 GMT+0000 (Coordinated Universal Time)] ERROR SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse (:null:null)
at /home/ubuntu/hubot/node_modules/hubot-grafana/src/grafana.coffee:428:7, :424:21
at IncomingMessage. (/home/ubuntu/hubot/node_modules/scoped-http-client/src/index.js:95:22)
at IncomingMessage.emit (events.js:327:22)
at endReadableNT (internal/streams/readable.js:1327:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21)

To Reproduce
Steps to reproduce the behavior:
1.Installed proetheus, node_exporter as service and installed grafana with image render plugin using docker-compose in a Raspberry pi 4 (armv8)

  1. See error

Expected behavior
getting grafana dashboard without error

Screenshots
image
image

Software:

  • Grafana: v7.3.6
  • Hubot: 3.3.2
  • Adapter: Slack
  • Node: v14.15.3
  • NPM: 6.14.9
@stephenyeargin
Copy link
Owner

Looks like we might be able to debug it a bit with #127. Handful of additional questions:

  1. Has it worked previously or is this a new install?
  2. Can you confirm that you can open <your grafana host>/api/search?type=dash-db from the bot host?
# If you have an API key
curl -H "Authorization: bearer <your token>" "<your grafana host>/api/search?type=dash-db"

# If you do not have an API token
curl "<your grafana host>/api/search?type=dash-db"

The JSON parsing error is because it received some other content instead of JSON, which is usually caused by an HTML page coming over instead. The linked PR aims to improve debugging to find this out sooner, but I'm not a fan of the way it requires changing every method call in order to echo back to the user.

@Sandaru48
Copy link
Author

Sandaru48 commented Jan 9, 2021

Looks like we might be able to debug it a bit with #127. Handful of additional questions:

  1. Has it worked previously or is this a new install?
  2. Can you confirm that you can open <your grafana host>/api/search?type=dash-db from the bot host?
# If you have an API key
curl -H "Authorization: bearer <your token>" "<your grafana host>/api/search?type=dash-db"

# If you do not have an API token
curl "<your grafana host>/api/search?type=dash-db"

The JSON parsing error is because it received some other content instead of JSON, which is usually caused by an HTML page coming over instead. The linked PR aims to improve debugging to find this out sooner, but I'm not a fan of the way it requires changing every method call in order to echo back to the user.

Hi @stephenyeargin ,
Sorry for the late response. Answers for 2 questions ;

  1. Yes . this is fresh installation.
  2. Yes, I can open <your grafana host>/api/search?type=dash-db from the bot host
    image

@stephenyeargin
Copy link
Owner

Let's try using the debug branch to get a better look at it. In your package.json, change to:

"hubot-grafana": "stephenyeargin/hubot-grafana#improve-error-handling",

Then, in your environment settings, set HUBOT_LOG_LEVEL=debug.

Here's an example of it encountering a redirect:

Hubot> !graf list
Hubot> [Sat Jan 09 2021 22:32:04 GMT-0600 (Central Standard Time)] DEBUG Message '!graf list' matched regex //^\s*[@]?(?:Hubot[:,]?|![:,]?)\s*(?:(?:grafana|graph|graf) list\s?(.+)?)/i/; listener.options = { id: null }
[Sat Jan 09 2021 22:32:04 GMT-0600 (Central Standard Time)] DEBUG Executing listener callback for Message '!graf list'
[Sat Jan 09 2021 22:32:04 GMT-0600 (Central Standard Time)] DEBUG <html>
<head><title>308 Permanent Redirect</title></head>
<body>
<center><h1>308 Permanent Redirect</h1></center>
<hr><center>nginx/1.15.10</center>
</body>
</html>

[Sat Jan 09 2021 22:32:04 GMT-0600 (Central Standard Time)] ERROR An error ocurred calling the Grafana API on <http://play.grafana.org>. See logs for details.
[Sat Jan 09 2021 22:32:04 GMT-0600 (Central Standard Time)] DEBUG false
[Sat Jan 09 2021 22:32:04 GMT-0600 (Central Standard Time)] DEBUG false
An error ocurred calling the Grafana API on <http://play.grafana.org>. See logs for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants