Websocket
This page describes how to use Lenses Websocket endpoints
Query Data via SQL
WS | WSS ${LENSES_URL}/environment/${YOUR_ENVIRONMENT_NAME}/proxy/api/ws/v2/sql/executeEstablishing a connection
{
"sql": String,
"live": Optional[Boolean],
"stats": Optional[Int]
}import os, websockets, json, asyncio
import ssl
#Optional if using self-signed cert with the websocket:
# ssl_context = ssl._create_unverified_context()
async def execute_SQL(environmentName: str, sql: str) -> dict:
#FOR Secure Websocket use:
# url = str("wss://") + os.getenv("HQ_HOST") + "/api/v1/environments/" + environmentName + "/proxy/api/ws/v2/sql/execute"
url = str("ws://") + os.getenv("HQ_HOST") + "/api/v1/environments/" + environmentName + "/proxy/api/ws/v2/sql/execute"
headers = {"Authorization": "Bearer " + os.getenv('HQ_TOKEN')}
data = []
try:
request = {
"sql": sql,
"live": False,
"stats": 2
}
#FOR WSS use:
#async with websockets.connect(url, ssl=ssl_context, additional_headers=headers) as websocket:
async with websockets.connect(url, additional_headers=headers) as websocket:
await websocket.send(json.dumps(request))
async for message in websocket:
response = json.loads(message)
if response.get('type') == 'RECORD':
data.append(response)
except websockets.exceptions.WebSocketException as e:
print(f"An error occurred: {e}")
return None
print(data)
asyncio.run(execute_SQL("demo", "SELECT * FROM input LIMIT 100;"))Query Request
Field
Description
Type
Protocol
Value
Description
Heartbeat
Error
Stats
Metadata
End
Bad Record
Sentinel
Record
Value
Description
Examples
Was this helpful?

