@juspay/neurolink 9.81.2 → 9.81.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/browser/neurolink.min.js +356 -356
  3. package/dist/constants/contextWindows.js +10 -0
  4. package/dist/core/constants.d.ts +16 -0
  5. package/dist/core/constants.js +16 -0
  6. package/dist/core/modules/ToolsManager.d.ts +5 -0
  7. package/dist/core/modules/ToolsManager.js +62 -6
  8. package/dist/lib/constants/contextWindows.js +10 -0
  9. package/dist/lib/core/constants.d.ts +16 -0
  10. package/dist/lib/core/constants.js +16 -0
  11. package/dist/lib/core/modules/ToolsManager.d.ts +5 -0
  12. package/dist/lib/core/modules/ToolsManager.js +62 -6
  13. package/dist/lib/neurolink.js +21 -3
  14. package/dist/lib/providers/googleNativeGemini3.d.ts +43 -0
  15. package/dist/lib/providers/googleNativeGemini3.js +73 -1
  16. package/dist/lib/providers/googleVertex.js +495 -80
  17. package/dist/lib/types/generate.d.ts +5 -1
  18. package/dist/lib/utils/async/index.d.ts +1 -1
  19. package/dist/lib/utils/async/index.js +1 -1
  20. package/dist/lib/utils/async/withTimeout.d.ts +12 -0
  21. package/dist/lib/utils/async/withTimeout.js +45 -0
  22. package/dist/lib/utils/mcpErrorText.d.ts +11 -0
  23. package/dist/lib/utils/mcpErrorText.js +23 -0
  24. package/dist/neurolink.js +21 -3
  25. package/dist/providers/googleNativeGemini3.d.ts +43 -0
  26. package/dist/providers/googleNativeGemini3.js +73 -1
  27. package/dist/providers/googleVertex.js +495 -80
  28. package/dist/types/generate.d.ts +5 -1
  29. package/dist/utils/async/index.d.ts +1 -1
  30. package/dist/utils/async/index.js +1 -1
  31. package/dist/utils/async/withTimeout.d.ts +12 -0
  32. package/dist/utils/async/withTimeout.js +45 -0
  33. package/dist/utils/mcpErrorText.d.ts +11 -0
  34. package/dist/utils/mcpErrorText.js +23 -0
  35. package/docs/assets/dashboards/neurolink-proxy-observability-dashboard.json +1258 -0
  36. package/package.json +1 -1
@@ -5562,6 +5562,1264 @@
5562
5562
  }
5563
5563
  ]
5564
5564
  },
5565
+ {
5566
+ "tabId": "cost",
5567
+ "name": "Cost & Budget",
5568
+ "panels": [
5569
+ {
5570
+ "id": "Panel_cost_01",
5571
+ "type": "metric",
5572
+ "title": "Total Cost in Range (est., USD)",
5573
+ "description": "SQL-derived total spend over the selected window (tokens x per-model price; estimate).",
5574
+ "config": {
5575
+ "show_legends": false,
5576
+ "legends_position": null,
5577
+ "decimals": 2.0,
5578
+ "line_thickness": 1.5,
5579
+ "step_value": "0",
5580
+ "top_results_others": false,
5581
+ "axis_border_show": false,
5582
+ "label_option": {
5583
+ "position": "inside",
5584
+ "rotate": 0.0
5585
+ },
5586
+ "show_symbol": true,
5587
+ "line_interpolation": "smooth",
5588
+ "legend_width": {
5589
+ "unit": "px"
5590
+ },
5591
+ "base_map": {
5592
+ "type": "osm"
5593
+ },
5594
+ "map_type": {
5595
+ "type": "world"
5596
+ },
5597
+ "map_view": {
5598
+ "zoom": 1.0,
5599
+ "lat": 0.0,
5600
+ "lng": 0.0
5601
+ },
5602
+ "map_symbol_style": {
5603
+ "size": "by Value",
5604
+ "size_by_value": {
5605
+ "min": 1.0,
5606
+ "max": 100.0
5607
+ },
5608
+ "size_fixed": 2.0
5609
+ },
5610
+ "drilldown": [],
5611
+ "mark_line": [],
5612
+ "override_config": [],
5613
+ "connect_nulls": false,
5614
+ "no_value_replacement": "",
5615
+ "wrap_table_cells": false,
5616
+ "table_transpose": false,
5617
+ "table_dynamic_columns": false,
5618
+ "color": {
5619
+ "mode": "palette-classic-by-series",
5620
+ "fixedColor": ["#53ca53"],
5621
+ "seriesBy": "last"
5622
+ },
5623
+ "trellis": {
5624
+ "layout": null,
5625
+ "num_of_columns": 1
5626
+ }
5627
+ },
5628
+ "queryType": "sql",
5629
+ "queries": [
5630
+ {
5631
+ "query": "SELECT CAST(ROUND(SUM(( COALESCE(ai_input_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 15.0 WHEN ai_model LIKE 'claude-opus%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.0 WHEN ai_model LIKE 'claude-haiku%' THEN 0.8 ELSE 3.0 END) + COALESCE(ai_output_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 75.0 WHEN ai_model LIKE 'claude-opus%' THEN 25.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku%' THEN 4.0 ELSE 15.0 END) + COALESCE(ai_cache_creation_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 18.75 WHEN ai_model LIKE 'claude-opus%' THEN 6.25 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.25 WHEN ai_model LIKE 'claude-haiku%' THEN 1.0 ELSE 3.75 END) + COALESCE(ai_cache_read_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 1.5 WHEN ai_model LIKE 'claude-opus%' THEN 0.5 WHEN ai_model LIKE 'claude-haiku-4%' THEN 0.1 WHEN ai_model LIKE 'claude-haiku%' THEN 0.08 ELSE 0.3 END) ) / 1000000.0),2) AS DECIMAL(18,2)) AS y_axis_1 FROM neurolink_proxy WHERE http_method IS NOT NULL",
5632
+ "vrlFunctionQuery": "",
5633
+ "customQuery": true,
5634
+ "fields": {
5635
+ "stream": "neurolink_proxy",
5636
+ "stream_type": "logs",
5637
+ "x": [],
5638
+ "y": [
5639
+ {
5640
+ "label": "Y-Axis",
5641
+ "alias": "y_axis_1",
5642
+ "column": "y_axis_1",
5643
+ "color": null,
5644
+ "aggregationFunction": "sum"
5645
+ }
5646
+ ],
5647
+ "z": [],
5648
+ "breakdown": [],
5649
+ "filter": {
5650
+ "filterType": "group",
5651
+ "logicalOperator": "AND",
5652
+ "conditions": []
5653
+ }
5654
+ },
5655
+ "config": {
5656
+ "promql_legend": "",
5657
+ "layer_type": "scatter",
5658
+ "weight_fixed": 1.0,
5659
+ "limit": 0.0,
5660
+ "min": 0.0,
5661
+ "max": 100.0,
5662
+ "time_shift": []
5663
+ }
5664
+ }
5665
+ ],
5666
+ "layout": {
5667
+ "x": 0,
5668
+ "y": 0,
5669
+ "w": 16,
5670
+ "h": 7,
5671
+ "i": 9001
5672
+ },
5673
+ "htmlContent": "",
5674
+ "markdownContent": "",
5675
+ "customChartContent": ""
5676
+ },
5677
+ {
5678
+ "id": "Panel_cost_02",
5679
+ "type": "metric",
5680
+ "title": "Cost per Request (est., USD)",
5681
+ "description": "Mean USD cost per proxied request (estimate).",
5682
+ "config": {
5683
+ "show_legends": false,
5684
+ "legends_position": null,
5685
+ "decimals": 2.0,
5686
+ "line_thickness": 1.5,
5687
+ "step_value": "0",
5688
+ "top_results_others": false,
5689
+ "axis_border_show": false,
5690
+ "label_option": {
5691
+ "position": "inside",
5692
+ "rotate": 0.0
5693
+ },
5694
+ "show_symbol": true,
5695
+ "line_interpolation": "smooth",
5696
+ "legend_width": {
5697
+ "unit": "px"
5698
+ },
5699
+ "base_map": {
5700
+ "type": "osm"
5701
+ },
5702
+ "map_type": {
5703
+ "type": "world"
5704
+ },
5705
+ "map_view": {
5706
+ "zoom": 1.0,
5707
+ "lat": 0.0,
5708
+ "lng": 0.0
5709
+ },
5710
+ "map_symbol_style": {
5711
+ "size": "by Value",
5712
+ "size_by_value": {
5713
+ "min": 1.0,
5714
+ "max": 100.0
5715
+ },
5716
+ "size_fixed": 2.0
5717
+ },
5718
+ "drilldown": [],
5719
+ "mark_line": [],
5720
+ "override_config": [],
5721
+ "connect_nulls": false,
5722
+ "no_value_replacement": "",
5723
+ "wrap_table_cells": false,
5724
+ "table_transpose": false,
5725
+ "table_dynamic_columns": false,
5726
+ "color": {
5727
+ "mode": "palette-classic-by-series",
5728
+ "fixedColor": ["#53ca53"],
5729
+ "seriesBy": "last"
5730
+ },
5731
+ "trellis": {
5732
+ "layout": null,
5733
+ "num_of_columns": 1
5734
+ }
5735
+ },
5736
+ "queryType": "sql",
5737
+ "queries": [
5738
+ {
5739
+ "query": "SELECT CAST(ROUND(SUM(( COALESCE(ai_input_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 15.0 WHEN ai_model LIKE 'claude-opus%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.0 WHEN ai_model LIKE 'claude-haiku%' THEN 0.8 ELSE 3.0 END) + COALESCE(ai_output_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 75.0 WHEN ai_model LIKE 'claude-opus%' THEN 25.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku%' THEN 4.0 ELSE 15.0 END) + COALESCE(ai_cache_creation_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 18.75 WHEN ai_model LIKE 'claude-opus%' THEN 6.25 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.25 WHEN ai_model LIKE 'claude-haiku%' THEN 1.0 ELSE 3.75 END) + COALESCE(ai_cache_read_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 1.5 WHEN ai_model LIKE 'claude-opus%' THEN 0.5 WHEN ai_model LIKE 'claude-haiku-4%' THEN 0.1 WHEN ai_model LIKE 'claude-haiku%' THEN 0.08 ELSE 0.3 END) ) / 1000000.0)/NULLIF(COUNT(*),0),4) AS DECIMAL(18,4)) AS y_axis_1 FROM neurolink_proxy WHERE http_method IS NOT NULL",
5740
+ "vrlFunctionQuery": "",
5741
+ "customQuery": true,
5742
+ "fields": {
5743
+ "stream": "neurolink_proxy",
5744
+ "stream_type": "logs",
5745
+ "x": [],
5746
+ "y": [
5747
+ {
5748
+ "label": "Y-Axis",
5749
+ "alias": "y_axis_1",
5750
+ "column": "y_axis_1",
5751
+ "color": null,
5752
+ "aggregationFunction": "sum"
5753
+ }
5754
+ ],
5755
+ "z": [],
5756
+ "breakdown": [],
5757
+ "filter": {
5758
+ "filterType": "group",
5759
+ "logicalOperator": "AND",
5760
+ "conditions": []
5761
+ }
5762
+ },
5763
+ "config": {
5764
+ "promql_legend": "",
5765
+ "layer_type": "scatter",
5766
+ "weight_fixed": 1.0,
5767
+ "limit": 0.0,
5768
+ "min": 0.0,
5769
+ "max": 100.0,
5770
+ "time_shift": []
5771
+ }
5772
+ }
5773
+ ],
5774
+ "layout": {
5775
+ "x": 16,
5776
+ "y": 0,
5777
+ "w": 16,
5778
+ "h": 7,
5779
+ "i": 9002
5780
+ },
5781
+ "htmlContent": "",
5782
+ "markdownContent": "",
5783
+ "customChartContent": ""
5784
+ },
5785
+ {
5786
+ "id": "Panel_cost_03",
5787
+ "type": "metric",
5788
+ "title": "Cache $ Savings (est., USD)",
5789
+ "description": "Estimated USD saved by cache reads vs paying full input price (cache-read tokens x (input-cacheRead) rate).",
5790
+ "config": {
5791
+ "show_legends": false,
5792
+ "legends_position": null,
5793
+ "decimals": 2.0,
5794
+ "line_thickness": 1.5,
5795
+ "step_value": "0",
5796
+ "top_results_others": false,
5797
+ "axis_border_show": false,
5798
+ "label_option": {
5799
+ "position": "inside",
5800
+ "rotate": 0.0
5801
+ },
5802
+ "show_symbol": true,
5803
+ "line_interpolation": "smooth",
5804
+ "legend_width": {
5805
+ "unit": "px"
5806
+ },
5807
+ "base_map": {
5808
+ "type": "osm"
5809
+ },
5810
+ "map_type": {
5811
+ "type": "world"
5812
+ },
5813
+ "map_view": {
5814
+ "zoom": 1.0,
5815
+ "lat": 0.0,
5816
+ "lng": 0.0
5817
+ },
5818
+ "map_symbol_style": {
5819
+ "size": "by Value",
5820
+ "size_by_value": {
5821
+ "min": 1.0,
5822
+ "max": 100.0
5823
+ },
5824
+ "size_fixed": 2.0
5825
+ },
5826
+ "drilldown": [],
5827
+ "mark_line": [],
5828
+ "override_config": [],
5829
+ "connect_nulls": false,
5830
+ "no_value_replacement": "",
5831
+ "wrap_table_cells": false,
5832
+ "table_transpose": false,
5833
+ "table_dynamic_columns": false,
5834
+ "color": {
5835
+ "mode": "palette-classic-by-series",
5836
+ "fixedColor": ["#53ca53"],
5837
+ "seriesBy": "last"
5838
+ },
5839
+ "trellis": {
5840
+ "layout": null,
5841
+ "num_of_columns": 1
5842
+ }
5843
+ },
5844
+ "queryType": "sql",
5845
+ "queries": [
5846
+ {
5847
+ "query": "SELECT CAST(ROUND(SUM(COALESCE(ai_cache_read_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 13.5 WHEN ai_model LIKE 'claude-opus%' THEN 4.5 WHEN ai_model LIKE 'claude-haiku-4%' THEN 0.9 WHEN ai_model LIKE 'claude-haiku%' THEN 0.72 ELSE 2.7 END) / 1000000.0),2) AS DECIMAL(18,2)) AS y_axis_1 FROM neurolink_proxy WHERE http_method IS NOT NULL",
5848
+ "vrlFunctionQuery": "",
5849
+ "customQuery": true,
5850
+ "fields": {
5851
+ "stream": "neurolink_proxy",
5852
+ "stream_type": "logs",
5853
+ "x": [],
5854
+ "y": [
5855
+ {
5856
+ "label": "Y-Axis",
5857
+ "alias": "y_axis_1",
5858
+ "column": "y_axis_1",
5859
+ "color": null,
5860
+ "aggregationFunction": "sum"
5861
+ }
5862
+ ],
5863
+ "z": [],
5864
+ "breakdown": [],
5865
+ "filter": {
5866
+ "filterType": "group",
5867
+ "logicalOperator": "AND",
5868
+ "conditions": []
5869
+ }
5870
+ },
5871
+ "config": {
5872
+ "promql_legend": "",
5873
+ "layer_type": "scatter",
5874
+ "weight_fixed": 1.0,
5875
+ "limit": 0.0,
5876
+ "min": 0.0,
5877
+ "max": 100.0,
5878
+ "time_shift": []
5879
+ }
5880
+ }
5881
+ ],
5882
+ "layout": {
5883
+ "x": 32,
5884
+ "y": 0,
5885
+ "w": 16,
5886
+ "h": 7,
5887
+ "i": 9003
5888
+ },
5889
+ "htmlContent": "",
5890
+ "markdownContent": "",
5891
+ "customChartContent": ""
5892
+ },
5893
+ {
5894
+ "id": "Panel_cost_04",
5895
+ "type": "bar",
5896
+ "title": "Cost by Account (est., USD)",
5897
+ "description": "Estimated spend per account over the window.",
5898
+ "config": {
5899
+ "show_legends": true,
5900
+ "legends_position": "bottom",
5901
+ "decimals": 0.0,
5902
+ "line_thickness": 1.5,
5903
+ "step_value": "0",
5904
+ "top_results_others": false,
5905
+ "axis_border_show": false,
5906
+ "label_option": {
5907
+ "position": "inside",
5908
+ "rotate": 0.0
5909
+ },
5910
+ "show_symbol": true,
5911
+ "line_interpolation": "smooth",
5912
+ "legend_width": {
5913
+ "unit": "px"
5914
+ },
5915
+ "base_map": {
5916
+ "type": "osm"
5917
+ },
5918
+ "map_type": {
5919
+ "type": "world"
5920
+ },
5921
+ "map_view": {
5922
+ "zoom": 1.0,
5923
+ "lat": 0.0,
5924
+ "lng": 0.0
5925
+ },
5926
+ "map_symbol_style": {
5927
+ "size": "by Value",
5928
+ "size_by_value": {
5929
+ "min": 1.0,
5930
+ "max": 100.0
5931
+ },
5932
+ "size_fixed": 2.0
5933
+ },
5934
+ "drilldown": [],
5935
+ "mark_line": [],
5936
+ "override_config": [],
5937
+ "connect_nulls": false,
5938
+ "no_value_replacement": "",
5939
+ "wrap_table_cells": false,
5940
+ "table_transpose": false,
5941
+ "table_dynamic_columns": false,
5942
+ "color": {
5943
+ "mode": "palette-classic-by-series",
5944
+ "fixedColor": ["#53ca53"],
5945
+ "seriesBy": "last"
5946
+ },
5947
+ "trellis": {
5948
+ "layout": null,
5949
+ "num_of_columns": 1
5950
+ }
5951
+ },
5952
+ "queryType": "sql",
5953
+ "queries": [
5954
+ {
5955
+ "query": "SELECT CASE WHEN account_name IS NOT NULL AND account_name != '' THEN account_name WHEN COALESCE(account_type,'') IN ('ollama','litellm','vertex') THEN account_type ELSE NULL END AS x_axis_1, CAST(ROUND(SUM(( COALESCE(ai_input_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 15.0 WHEN ai_model LIKE 'claude-opus%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.0 WHEN ai_model LIKE 'claude-haiku%' THEN 0.8 ELSE 3.0 END) + COALESCE(ai_output_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 75.0 WHEN ai_model LIKE 'claude-opus%' THEN 25.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku%' THEN 4.0 ELSE 15.0 END) + COALESCE(ai_cache_creation_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 18.75 WHEN ai_model LIKE 'claude-opus%' THEN 6.25 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.25 WHEN ai_model LIKE 'claude-haiku%' THEN 1.0 ELSE 3.75 END) + COALESCE(ai_cache_read_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 1.5 WHEN ai_model LIKE 'claude-opus%' THEN 0.5 WHEN ai_model LIKE 'claude-haiku-4%' THEN 0.1 WHEN ai_model LIKE 'claude-haiku%' THEN 0.08 ELSE 0.3 END) ) / 1000000.0),4) AS DECIMAL(18,4)) AS y_axis_1 FROM neurolink_proxy WHERE http_method IS NOT NULL AND (account_name IS NOT NULL AND account_name != '' OR COALESCE(account_type,'') IN ('ollama','litellm','vertex')) GROUP BY CASE WHEN account_name IS NOT NULL AND account_name != '' THEN account_name WHEN COALESCE(account_type,'') IN ('ollama','litellm','vertex') THEN account_type ELSE NULL END ORDER BY y_axis_1 DESC",
5956
+ "vrlFunctionQuery": "",
5957
+ "customQuery": true,
5958
+ "fields": {
5959
+ "stream": "neurolink_proxy",
5960
+ "stream_type": "logs",
5961
+ "x": [
5962
+ {
5963
+ "label": "X-Axis",
5964
+ "alias": "x_axis_1",
5965
+ "column": "x_axis_1",
5966
+ "color": null,
5967
+ "sortBy": "DESC"
5968
+ }
5969
+ ],
5970
+ "y": [
5971
+ {
5972
+ "label": "Y-Axis",
5973
+ "alias": "y_axis_1",
5974
+ "column": "y_axis_1",
5975
+ "color": null,
5976
+ "aggregationFunction": "sum"
5977
+ }
5978
+ ],
5979
+ "z": [],
5980
+ "breakdown": [],
5981
+ "filter": {
5982
+ "filterType": "group",
5983
+ "logicalOperator": "AND",
5984
+ "conditions": []
5985
+ }
5986
+ },
5987
+ "config": {
5988
+ "promql_legend": "",
5989
+ "layer_type": "scatter",
5990
+ "weight_fixed": 1.0,
5991
+ "limit": 0.0,
5992
+ "min": 0.0,
5993
+ "max": 100.0,
5994
+ "time_shift": []
5995
+ }
5996
+ }
5997
+ ],
5998
+ "layout": {
5999
+ "x": 0,
6000
+ "y": 7,
6001
+ "w": 24,
6002
+ "h": 9,
6003
+ "i": 9004
6004
+ },
6005
+ "htmlContent": "",
6006
+ "markdownContent": "",
6007
+ "customChartContent": ""
6008
+ },
6009
+ {
6010
+ "id": "Panel_cost_05",
6011
+ "type": "bar",
6012
+ "title": "Cost by Model (est., USD)",
6013
+ "description": "Estimated spend per model over the window.",
6014
+ "config": {
6015
+ "show_legends": true,
6016
+ "legends_position": "bottom",
6017
+ "decimals": 2.0,
6018
+ "line_thickness": 1.5,
6019
+ "step_value": "0",
6020
+ "top_results_others": false,
6021
+ "axis_border_show": false,
6022
+ "label_option": {
6023
+ "position": "inside",
6024
+ "rotate": 0.0
6025
+ },
6026
+ "show_symbol": true,
6027
+ "line_interpolation": "smooth",
6028
+ "legend_width": {
6029
+ "unit": "px"
6030
+ },
6031
+ "base_map": {
6032
+ "type": "osm"
6033
+ },
6034
+ "map_type": {
6035
+ "type": "world"
6036
+ },
6037
+ "map_view": {
6038
+ "zoom": 1.0,
6039
+ "lat": 0.0,
6040
+ "lng": 0.0
6041
+ },
6042
+ "map_symbol_style": {
6043
+ "size": "by Value",
6044
+ "size_by_value": {
6045
+ "min": 1.0,
6046
+ "max": 100.0
6047
+ },
6048
+ "size_fixed": 2.0
6049
+ },
6050
+ "drilldown": [],
6051
+ "mark_line": [],
6052
+ "override_config": [],
6053
+ "connect_nulls": false,
6054
+ "no_value_replacement": "",
6055
+ "wrap_table_cells": false,
6056
+ "table_transpose": false,
6057
+ "table_dynamic_columns": false,
6058
+ "color": {
6059
+ "mode": "palette-classic-by-series",
6060
+ "fixedColor": ["#53ca53"],
6061
+ "seriesBy": "last"
6062
+ },
6063
+ "trellis": {
6064
+ "layout": null,
6065
+ "num_of_columns": 1
6066
+ }
6067
+ },
6068
+ "queryType": "sql",
6069
+ "queries": [
6070
+ {
6071
+ "query": "SELECT ai_model AS x_axis_1, CAST(ROUND(SUM(( COALESCE(ai_input_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 15.0 WHEN ai_model LIKE 'claude-opus%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.0 WHEN ai_model LIKE 'claude-haiku%' THEN 0.8 ELSE 3.0 END) + COALESCE(ai_output_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 75.0 WHEN ai_model LIKE 'claude-opus%' THEN 25.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku%' THEN 4.0 ELSE 15.0 END) + COALESCE(ai_cache_creation_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 18.75 WHEN ai_model LIKE 'claude-opus%' THEN 6.25 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.25 WHEN ai_model LIKE 'claude-haiku%' THEN 1.0 ELSE 3.75 END) + COALESCE(ai_cache_read_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 1.5 WHEN ai_model LIKE 'claude-opus%' THEN 0.5 WHEN ai_model LIKE 'claude-haiku-4%' THEN 0.1 WHEN ai_model LIKE 'claude-haiku%' THEN 0.08 ELSE 0.3 END) ) / 1000000.0),4) AS DECIMAL(18,4)) AS y_axis_1 FROM neurolink_proxy WHERE http_method IS NOT NULL GROUP BY ai_model ORDER BY y_axis_1 DESC",
6072
+ "vrlFunctionQuery": "",
6073
+ "customQuery": true,
6074
+ "fields": {
6075
+ "stream": "neurolink_proxy",
6076
+ "stream_type": "logs",
6077
+ "x": [
6078
+ {
6079
+ "label": "X-Axis",
6080
+ "alias": "x_axis_1",
6081
+ "column": "ai_model",
6082
+ "color": null,
6083
+ "sortBy": "DESC"
6084
+ }
6085
+ ],
6086
+ "y": [
6087
+ {
6088
+ "label": "Y-Axis",
6089
+ "alias": "y_axis_1",
6090
+ "column": "y_axis_1",
6091
+ "color": null,
6092
+ "aggregationFunction": "sum"
6093
+ }
6094
+ ],
6095
+ "z": [],
6096
+ "breakdown": [],
6097
+ "filter": {
6098
+ "filterType": "group",
6099
+ "logicalOperator": "AND",
6100
+ "conditions": []
6101
+ }
6102
+ },
6103
+ "config": {
6104
+ "promql_legend": "",
6105
+ "layer_type": "scatter",
6106
+ "weight_fixed": 1.0,
6107
+ "limit": 0.0,
6108
+ "min": 0.0,
6109
+ "max": 100.0,
6110
+ "time_shift": []
6111
+ }
6112
+ }
6113
+ ],
6114
+ "layout": {
6115
+ "x": 24,
6116
+ "y": 7,
6117
+ "w": 24,
6118
+ "h": 9,
6119
+ "i": 9005
6120
+ },
6121
+ "htmlContent": "",
6122
+ "markdownContent": "",
6123
+ "customChartContent": ""
6124
+ },
6125
+ {
6126
+ "id": "Panel_cost_06",
6127
+ "type": "area-stacked",
6128
+ "title": "Cost Trend by Account (5m, est., USD)",
6129
+ "description": "Estimated spend over time, broken down by account.",
6130
+ "config": {
6131
+ "show_legends": true,
6132
+ "legends_position": "bottom",
6133
+ "decimals": 0.0,
6134
+ "line_thickness": 1.5,
6135
+ "step_value": "0",
6136
+ "top_results_others": false,
6137
+ "axis_border_show": false,
6138
+ "label_option": {
6139
+ "position": "inside",
6140
+ "rotate": 0.0
6141
+ },
6142
+ "show_symbol": false,
6143
+ "line_interpolation": "smooth",
6144
+ "legend_width": {
6145
+ "unit": "px"
6146
+ },
6147
+ "base_map": {
6148
+ "type": "osm"
6149
+ },
6150
+ "map_type": {
6151
+ "type": "world"
6152
+ },
6153
+ "map_view": {
6154
+ "zoom": 1.0,
6155
+ "lat": 0.0,
6156
+ "lng": 0.0
6157
+ },
6158
+ "map_symbol_style": {
6159
+ "size": "by Value",
6160
+ "size_by_value": {
6161
+ "min": 1.0,
6162
+ "max": 100.0
6163
+ },
6164
+ "size_fixed": 2.0
6165
+ },
6166
+ "drilldown": [],
6167
+ "mark_line": [],
6168
+ "override_config": [],
6169
+ "connect_nulls": false,
6170
+ "no_value_replacement": "",
6171
+ "wrap_table_cells": false,
6172
+ "table_transpose": false,
6173
+ "table_dynamic_columns": false,
6174
+ "color": {
6175
+ "mode": "palette-classic-by-series",
6176
+ "fixedColor": ["#53ca53"],
6177
+ "seriesBy": "last"
6178
+ },
6179
+ "trellis": {
6180
+ "layout": null,
6181
+ "num_of_columns": 1
6182
+ }
6183
+ },
6184
+ "queryType": "sql",
6185
+ "queries": [
6186
+ {
6187
+ "query": "SELECT histogram(_timestamp, '5 minutes') AS x_axis_1, CASE WHEN account_name IS NOT NULL AND account_name != '' THEN account_name WHEN COALESCE(account_type,'') IN ('ollama','litellm','vertex') THEN account_type ELSE NULL END AS account_label, CAST(ROUND(SUM(( COALESCE(ai_input_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 15.0 WHEN ai_model LIKE 'claude-opus%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.0 WHEN ai_model LIKE 'claude-haiku%' THEN 0.8 ELSE 3.0 END) + COALESCE(ai_output_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 75.0 WHEN ai_model LIKE 'claude-opus%' THEN 25.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku%' THEN 4.0 ELSE 15.0 END) + COALESCE(ai_cache_creation_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 18.75 WHEN ai_model LIKE 'claude-opus%' THEN 6.25 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.25 WHEN ai_model LIKE 'claude-haiku%' THEN 1.0 ELSE 3.75 END) + COALESCE(ai_cache_read_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 1.5 WHEN ai_model LIKE 'claude-opus%' THEN 0.5 WHEN ai_model LIKE 'claude-haiku-4%' THEN 0.1 WHEN ai_model LIKE 'claude-haiku%' THEN 0.08 ELSE 0.3 END) ) / 1000000.0),4) AS DECIMAL(18,4)) AS y_axis_1 FROM neurolink_proxy WHERE http_method IS NOT NULL AND (account_name IS NOT NULL AND account_name != '' OR COALESCE(account_type,'') IN ('ollama','litellm','vertex')) GROUP BY x_axis_1, CASE WHEN account_name IS NOT NULL AND account_name != '' THEN account_name WHEN COALESCE(account_type,'') IN ('ollama','litellm','vertex') THEN account_type ELSE NULL END ORDER BY x_axis_1 ASC",
6188
+ "vrlFunctionQuery": "",
6189
+ "customQuery": true,
6190
+ "fields": {
6191
+ "stream": "neurolink_proxy",
6192
+ "stream_type": "logs",
6193
+ "x": [
6194
+ {
6195
+ "label": "Timestamp",
6196
+ "alias": "x_axis_1",
6197
+ "column": "_timestamp",
6198
+ "color": null,
6199
+ "aggregationFunction": "histogram",
6200
+ "sortBy": "ASC"
6201
+ }
6202
+ ],
6203
+ "y": [
6204
+ {
6205
+ "label": "Y-Axis",
6206
+ "alias": "y_axis_1",
6207
+ "column": "y_axis_1",
6208
+ "color": null,
6209
+ "aggregationFunction": "sum"
6210
+ }
6211
+ ],
6212
+ "z": [],
6213
+ "breakdown": [
6214
+ {
6215
+ "label": "Breakdown",
6216
+ "alias": "account_label",
6217
+ "column": "account_label",
6218
+ "color": null
6219
+ }
6220
+ ],
6221
+ "filter": {
6222
+ "filterType": "group",
6223
+ "logicalOperator": "AND",
6224
+ "conditions": []
6225
+ }
6226
+ },
6227
+ "config": {
6228
+ "promql_legend": "",
6229
+ "layer_type": "scatter",
6230
+ "weight_fixed": 1.0,
6231
+ "limit": 0.0,
6232
+ "min": 0.0,
6233
+ "max": 100.0,
6234
+ "time_shift": []
6235
+ }
6236
+ }
6237
+ ],
6238
+ "layout": {
6239
+ "x": 0,
6240
+ "y": 16,
6241
+ "w": 48,
6242
+ "h": 9,
6243
+ "i": 9006
6244
+ },
6245
+ "htmlContent": "",
6246
+ "markdownContent": "",
6247
+ "customChartContent": ""
6248
+ },
6249
+ {
6250
+ "id": "Panel_cost_07",
6251
+ "type": "bar",
6252
+ "title": "Effective $/1M Tokens by Model (est.)",
6253
+ "description": "Blended effective price per million tokens (cache reads pull this below list price).",
6254
+ "config": {
6255
+ "show_legends": true,
6256
+ "legends_position": "bottom",
6257
+ "decimals": 2.0,
6258
+ "line_thickness": 1.5,
6259
+ "step_value": "0",
6260
+ "top_results_others": false,
6261
+ "axis_border_show": false,
6262
+ "label_option": {
6263
+ "position": "inside",
6264
+ "rotate": 0.0
6265
+ },
6266
+ "show_symbol": true,
6267
+ "line_interpolation": "smooth",
6268
+ "legend_width": {
6269
+ "unit": "px"
6270
+ },
6271
+ "base_map": {
6272
+ "type": "osm"
6273
+ },
6274
+ "map_type": {
6275
+ "type": "world"
6276
+ },
6277
+ "map_view": {
6278
+ "zoom": 1.0,
6279
+ "lat": 0.0,
6280
+ "lng": 0.0
6281
+ },
6282
+ "map_symbol_style": {
6283
+ "size": "by Value",
6284
+ "size_by_value": {
6285
+ "min": 1.0,
6286
+ "max": 100.0
6287
+ },
6288
+ "size_fixed": 2.0
6289
+ },
6290
+ "drilldown": [],
6291
+ "mark_line": [],
6292
+ "override_config": [],
6293
+ "connect_nulls": false,
6294
+ "no_value_replacement": "",
6295
+ "wrap_table_cells": false,
6296
+ "table_transpose": false,
6297
+ "table_dynamic_columns": false,
6298
+ "color": {
6299
+ "mode": "palette-classic-by-series",
6300
+ "fixedColor": ["#53ca53"],
6301
+ "seriesBy": "last"
6302
+ },
6303
+ "trellis": {
6304
+ "layout": null,
6305
+ "num_of_columns": 1
6306
+ }
6307
+ },
6308
+ "queryType": "sql",
6309
+ "queries": [
6310
+ {
6311
+ "query": "SELECT ai_model AS x_axis_1, CAST(ROUND(SUM(( COALESCE(ai_input_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 15.0 WHEN ai_model LIKE 'claude-opus%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.0 WHEN ai_model LIKE 'claude-haiku%' THEN 0.8 ELSE 3.0 END) + COALESCE(ai_output_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 75.0 WHEN ai_model LIKE 'claude-opus%' THEN 25.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku%' THEN 4.0 ELSE 15.0 END) + COALESCE(ai_cache_creation_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 18.75 WHEN ai_model LIKE 'claude-opus%' THEN 6.25 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.25 WHEN ai_model LIKE 'claude-haiku%' THEN 1.0 ELSE 3.75 END) + COALESCE(ai_cache_read_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 1.5 WHEN ai_model LIKE 'claude-opus%' THEN 0.5 WHEN ai_model LIKE 'claude-haiku-4%' THEN 0.1 WHEN ai_model LIKE 'claude-haiku%' THEN 0.08 ELSE 0.3 END) ) / 1000000.0)/NULLIF(SUM(COALESCE(ai_input_tokens,0)+COALESCE(ai_output_tokens,0)+COALESCE(ai_cache_creation_tokens,0)+COALESCE(ai_cache_read_tokens,0)),0)*1000000.0,2) AS DECIMAL(18,2)) AS y_axis_1 FROM neurolink_proxy WHERE http_method IS NOT NULL GROUP BY ai_model ORDER BY y_axis_1 DESC",
6312
+ "vrlFunctionQuery": "",
6313
+ "customQuery": true,
6314
+ "fields": {
6315
+ "stream": "neurolink_proxy",
6316
+ "stream_type": "logs",
6317
+ "x": [
6318
+ {
6319
+ "label": "X-Axis",
6320
+ "alias": "x_axis_1",
6321
+ "column": "ai_model",
6322
+ "color": null,
6323
+ "sortBy": "DESC"
6324
+ }
6325
+ ],
6326
+ "y": [
6327
+ {
6328
+ "label": "Y-Axis",
6329
+ "alias": "y_axis_1",
6330
+ "column": "y_axis_1",
6331
+ "color": null,
6332
+ "aggregationFunction": "sum"
6333
+ }
6334
+ ],
6335
+ "z": [],
6336
+ "breakdown": [],
6337
+ "filter": {
6338
+ "filterType": "group",
6339
+ "logicalOperator": "AND",
6340
+ "conditions": []
6341
+ }
6342
+ },
6343
+ "config": {
6344
+ "promql_legend": "",
6345
+ "layer_type": "scatter",
6346
+ "weight_fixed": 1.0,
6347
+ "limit": 0.0,
6348
+ "min": 0.0,
6349
+ "max": 100.0,
6350
+ "time_shift": []
6351
+ }
6352
+ }
6353
+ ],
6354
+ "layout": {
6355
+ "x": 0,
6356
+ "y": 25,
6357
+ "w": 24,
6358
+ "h": 9,
6359
+ "i": 9007
6360
+ },
6361
+ "htmlContent": "",
6362
+ "markdownContent": "",
6363
+ "customChartContent": ""
6364
+ },
6365
+ {
6366
+ "id": "Panel_cost_08",
6367
+ "type": "metric",
6368
+ "title": "Projected Daily Spend (est., USD)",
6369
+ "description": "Run-rate: window spend extrapolated to 24h (noisy for short windows).",
6370
+ "config": {
6371
+ "show_legends": false,
6372
+ "legends_position": null,
6373
+ "decimals": 2.0,
6374
+ "line_thickness": 1.5,
6375
+ "step_value": "0",
6376
+ "top_results_others": false,
6377
+ "axis_border_show": false,
6378
+ "label_option": {
6379
+ "position": "inside",
6380
+ "rotate": 0.0
6381
+ },
6382
+ "show_symbol": true,
6383
+ "line_interpolation": "smooth",
6384
+ "legend_width": {
6385
+ "unit": "px"
6386
+ },
6387
+ "base_map": {
6388
+ "type": "osm"
6389
+ },
6390
+ "map_type": {
6391
+ "type": "world"
6392
+ },
6393
+ "map_view": {
6394
+ "zoom": 1.0,
6395
+ "lat": 0.0,
6396
+ "lng": 0.0
6397
+ },
6398
+ "map_symbol_style": {
6399
+ "size": "by Value",
6400
+ "size_by_value": {
6401
+ "min": 1.0,
6402
+ "max": 100.0
6403
+ },
6404
+ "size_fixed": 2.0
6405
+ },
6406
+ "drilldown": [],
6407
+ "mark_line": [],
6408
+ "override_config": [],
6409
+ "connect_nulls": false,
6410
+ "no_value_replacement": "",
6411
+ "wrap_table_cells": false,
6412
+ "table_transpose": false,
6413
+ "table_dynamic_columns": false,
6414
+ "color": {
6415
+ "mode": "palette-classic-by-series",
6416
+ "fixedColor": ["#53ca53"],
6417
+ "seriesBy": "last"
6418
+ },
6419
+ "trellis": {
6420
+ "layout": null,
6421
+ "num_of_columns": 1
6422
+ }
6423
+ },
6424
+ "queryType": "sql",
6425
+ "queries": [
6426
+ {
6427
+ "query": "SELECT CAST(ROUND(SUM(( COALESCE(ai_input_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 15.0 WHEN ai_model LIKE 'claude-opus%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.0 WHEN ai_model LIKE 'claude-haiku%' THEN 0.8 ELSE 3.0 END) + COALESCE(ai_output_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 75.0 WHEN ai_model LIKE 'claude-opus%' THEN 25.0 WHEN ai_model LIKE 'claude-haiku-4%' THEN 5.0 WHEN ai_model LIKE 'claude-haiku%' THEN 4.0 ELSE 15.0 END) + COALESCE(ai_cache_creation_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 18.75 WHEN ai_model LIKE 'claude-opus%' THEN 6.25 WHEN ai_model LIKE 'claude-haiku-4%' THEN 1.25 WHEN ai_model LIKE 'claude-haiku%' THEN 1.0 ELSE 3.75 END) + COALESCE(ai_cache_read_tokens,0) * (CASE WHEN ai_model LIKE 'claude-opus-4-1%' OR ai_model='claude-opus-4' OR ai_model LIKE 'claude-opus-3%' OR ai_model LIKE 'claude-3-opus%' THEN 1.5 WHEN ai_model LIKE 'claude-opus%' THEN 0.5 WHEN ai_model LIKE 'claude-haiku-4%' THEN 0.1 WHEN ai_model LIKE 'claude-haiku%' THEN 0.08 ELSE 0.3 END) ) / 1000000.0)/NULLIF((MAX(_timestamp)-MIN(_timestamp))/1000000.0,0)*86400.0,2) AS DECIMAL(18,2)) AS y_axis_1 FROM neurolink_proxy WHERE http_method IS NOT NULL",
6428
+ "vrlFunctionQuery": "",
6429
+ "customQuery": true,
6430
+ "fields": {
6431
+ "stream": "neurolink_proxy",
6432
+ "stream_type": "logs",
6433
+ "x": [],
6434
+ "y": [
6435
+ {
6436
+ "label": "Y-Axis",
6437
+ "alias": "y_axis_1",
6438
+ "column": "y_axis_1",
6439
+ "color": null,
6440
+ "aggregationFunction": "sum"
6441
+ }
6442
+ ],
6443
+ "z": [],
6444
+ "breakdown": [],
6445
+ "filter": {
6446
+ "filterType": "group",
6447
+ "logicalOperator": "AND",
6448
+ "conditions": []
6449
+ }
6450
+ },
6451
+ "config": {
6452
+ "promql_legend": "",
6453
+ "layer_type": "scatter",
6454
+ "weight_fixed": 1.0,
6455
+ "limit": 0.0,
6456
+ "min": 0.0,
6457
+ "max": 100.0,
6458
+ "time_shift": []
6459
+ }
6460
+ }
6461
+ ],
6462
+ "layout": {
6463
+ "x": 24,
6464
+ "y": 25,
6465
+ "w": 24,
6466
+ "h": 9,
6467
+ "i": 9008
6468
+ },
6469
+ "htmlContent": "",
6470
+ "markdownContent": "",
6471
+ "customChartContent": ""
6472
+ },
6473
+ {
6474
+ "id": "Panel_cost_09",
6475
+ "type": "bar",
6476
+ "title": "7-day Quota Utilization by Account (%)",
6477
+ "description": "Latest 7-day rate-limit utilisation per account (%), from proxy.request trace spans. Anthropic OAuth only.",
6478
+ "config": {
6479
+ "show_legends": true,
6480
+ "legends_position": "bottom",
6481
+ "decimals": 1,
6482
+ "line_thickness": 1.5,
6483
+ "step_value": "0",
6484
+ "top_results_others": false,
6485
+ "axis_border_show": false,
6486
+ "label_option": {
6487
+ "position": "inside",
6488
+ "rotate": 0
6489
+ },
6490
+ "show_symbol": true,
6491
+ "line_interpolation": "smooth",
6492
+ "legend_width": {
6493
+ "unit": "px"
6494
+ },
6495
+ "base_map": {
6496
+ "type": "osm"
6497
+ },
6498
+ "map_type": {
6499
+ "type": "world"
6500
+ },
6501
+ "map_view": {
6502
+ "zoom": 1,
6503
+ "lat": 0,
6504
+ "lng": 0
6505
+ },
6506
+ "map_symbol_style": {
6507
+ "size": "by Value",
6508
+ "size_by_value": {
6509
+ "min": 1,
6510
+ "max": 100
6511
+ },
6512
+ "size_fixed": 2
6513
+ },
6514
+ "drilldown": [],
6515
+ "mark_line": [],
6516
+ "override_config": [],
6517
+ "connect_nulls": false,
6518
+ "no_value_replacement": "",
6519
+ "wrap_table_cells": false,
6520
+ "table_transpose": false,
6521
+ "table_dynamic_columns": false,
6522
+ "color": {
6523
+ "mode": "palette-classic-by-series",
6524
+ "fixedColor": ["#53ca53"],
6525
+ "seriesBy": "last"
6526
+ },
6527
+ "trellis": {
6528
+ "layout": null,
6529
+ "num_of_columns": 1
6530
+ }
6531
+ },
6532
+ "queryType": "sql",
6533
+ "queries": [
6534
+ {
6535
+ "query": "SELECT proxy_account AS x_axis_1, CAST(ROUND(MAX(util) * 100, 1) AS DECIMAL(5,1)) AS y_axis_1 FROM (SELECT proxy_account, CAST(proxy_ratelimit_after_7d AS DOUBLE) AS util, ROW_NUMBER() OVER (PARTITION BY proxy_account ORDER BY _timestamp DESC) AS rn FROM neurolink_proxy WHERE operation_name = 'proxy.request' AND proxy_ratelimit_after_7d IS NOT NULL AND proxy_account IS NOT NULL AND proxy_account != '') t WHERE rn = 1 GROUP BY proxy_account ORDER BY y_axis_1 DESC",
6536
+ "vrlFunctionQuery": "",
6537
+ "customQuery": true,
6538
+ "fields": {
6539
+ "stream": "neurolink_proxy",
6540
+ "stream_type": "traces",
6541
+ "x": [
6542
+ {
6543
+ "label": "Account",
6544
+ "alias": "x_axis_1",
6545
+ "column": "x_axis_1",
6546
+ "color": null,
6547
+ "sortBy": "DESC"
6548
+ }
6549
+ ],
6550
+ "y": [
6551
+ {
6552
+ "label": "Utilisation (%)",
6553
+ "alias": "y_axis_1",
6554
+ "column": "y_axis_1",
6555
+ "color": null,
6556
+ "aggregationFunction": "sum"
6557
+ }
6558
+ ],
6559
+ "z": [],
6560
+ "breakdown": [],
6561
+ "filter": {
6562
+ "filterType": "group",
6563
+ "logicalOperator": "AND",
6564
+ "conditions": []
6565
+ }
6566
+ },
6567
+ "config": {
6568
+ "promql_legend": "",
6569
+ "layer_type": "scatter",
6570
+ "weight_fixed": 1,
6571
+ "limit": 0,
6572
+ "min": 0,
6573
+ "max": 100,
6574
+ "time_shift": []
6575
+ }
6576
+ }
6577
+ ],
6578
+ "layout": {
6579
+ "x": 0,
6580
+ "y": 34,
6581
+ "w": 24,
6582
+ "h": 9,
6583
+ "i": 9009
6584
+ },
6585
+ "htmlContent": "",
6586
+ "markdownContent": "",
6587
+ "customChartContent": ""
6588
+ },
6589
+ {
6590
+ "id": "Panel_cost_10",
6591
+ "type": "bar",
6592
+ "title": "5-hour Quota Utilization by Account (%)",
6593
+ "description": "Latest 5-hour rate-limit utilisation per account (%), from proxy.request trace spans. Anthropic OAuth only.",
6594
+ "config": {
6595
+ "show_legends": true,
6596
+ "legends_position": "bottom",
6597
+ "decimals": 1,
6598
+ "line_thickness": 1.5,
6599
+ "step_value": "0",
6600
+ "top_results_others": false,
6601
+ "axis_border_show": false,
6602
+ "label_option": {
6603
+ "position": "inside",
6604
+ "rotate": 0
6605
+ },
6606
+ "show_symbol": true,
6607
+ "line_interpolation": "smooth",
6608
+ "legend_width": {
6609
+ "unit": "px"
6610
+ },
6611
+ "base_map": {
6612
+ "type": "osm"
6613
+ },
6614
+ "map_type": {
6615
+ "type": "world"
6616
+ },
6617
+ "map_view": {
6618
+ "zoom": 1,
6619
+ "lat": 0,
6620
+ "lng": 0
6621
+ },
6622
+ "map_symbol_style": {
6623
+ "size": "by Value",
6624
+ "size_by_value": {
6625
+ "min": 1,
6626
+ "max": 100
6627
+ },
6628
+ "size_fixed": 2
6629
+ },
6630
+ "drilldown": [],
6631
+ "mark_line": [],
6632
+ "override_config": [],
6633
+ "connect_nulls": false,
6634
+ "no_value_replacement": "",
6635
+ "wrap_table_cells": false,
6636
+ "table_transpose": false,
6637
+ "table_dynamic_columns": false,
6638
+ "color": {
6639
+ "mode": "palette-classic-by-series",
6640
+ "fixedColor": ["#53ca53"],
6641
+ "seriesBy": "last"
6642
+ },
6643
+ "trellis": {
6644
+ "layout": null,
6645
+ "num_of_columns": 1
6646
+ }
6647
+ },
6648
+ "queryType": "sql",
6649
+ "queries": [
6650
+ {
6651
+ "query": "SELECT proxy_account AS x_axis_1, CAST(ROUND(MAX(util) * 100, 1) AS DECIMAL(5,1)) AS y_axis_1 FROM (SELECT proxy_account, CAST(proxy_ratelimit_after_5h AS DOUBLE) AS util, ROW_NUMBER() OVER (PARTITION BY proxy_account ORDER BY _timestamp DESC) AS rn FROM neurolink_proxy WHERE operation_name = 'proxy.request' AND proxy_ratelimit_after_5h IS NOT NULL AND proxy_account IS NOT NULL AND proxy_account != '') t WHERE rn = 1 GROUP BY proxy_account ORDER BY y_axis_1 DESC",
6652
+ "vrlFunctionQuery": "",
6653
+ "customQuery": true,
6654
+ "fields": {
6655
+ "stream": "neurolink_proxy",
6656
+ "stream_type": "traces",
6657
+ "x": [
6658
+ {
6659
+ "label": "Account",
6660
+ "alias": "x_axis_1",
6661
+ "column": "x_axis_1",
6662
+ "color": null,
6663
+ "sortBy": "DESC"
6664
+ }
6665
+ ],
6666
+ "y": [
6667
+ {
6668
+ "label": "Utilisation (%)",
6669
+ "alias": "y_axis_1",
6670
+ "column": "y_axis_1",
6671
+ "color": null,
6672
+ "aggregationFunction": "sum"
6673
+ }
6674
+ ],
6675
+ "z": [],
6676
+ "breakdown": [],
6677
+ "filter": {
6678
+ "filterType": "group",
6679
+ "logicalOperator": "AND",
6680
+ "conditions": []
6681
+ }
6682
+ },
6683
+ "config": {
6684
+ "promql_legend": "",
6685
+ "layer_type": "scatter",
6686
+ "weight_fixed": 1,
6687
+ "limit": 0,
6688
+ "min": 0,
6689
+ "max": 100,
6690
+ "time_shift": []
6691
+ }
6692
+ }
6693
+ ],
6694
+ "layout": {
6695
+ "x": 24,
6696
+ "y": 34,
6697
+ "w": 24,
6698
+ "h": 9,
6699
+ "i": 9010
6700
+ },
6701
+ "htmlContent": "",
6702
+ "markdownContent": "",
6703
+ "customChartContent": ""
6704
+ },
6705
+ {
6706
+ "id": "Panel_cost_11",
6707
+ "type": "table",
6708
+ "title": "Top Sessions by Cost (est., USD)",
6709
+ "description": "Top 20 sessions by estimated USD cost (proxy-computed ai_cost_total, from trace spans).",
6710
+ "config": {
6711
+ "show_legends": true,
6712
+ "legends_position": "bottom",
6713
+ "decimals": 2,
6714
+ "line_thickness": 1.5,
6715
+ "step_value": "0",
6716
+ "top_results_others": false,
6717
+ "axis_border_show": false,
6718
+ "label_option": {
6719
+ "position": "inside",
6720
+ "rotate": 0
6721
+ },
6722
+ "show_symbol": true,
6723
+ "line_interpolation": "smooth",
6724
+ "legend_width": {
6725
+ "unit": "px"
6726
+ },
6727
+ "base_map": {
6728
+ "type": "osm"
6729
+ },
6730
+ "map_type": {
6731
+ "type": "world"
6732
+ },
6733
+ "map_view": {
6734
+ "zoom": 1,
6735
+ "lat": 0,
6736
+ "lng": 0
6737
+ },
6738
+ "map_symbol_style": {
6739
+ "size": "by Value",
6740
+ "size_by_value": {
6741
+ "min": 1,
6742
+ "max": 100
6743
+ },
6744
+ "size_fixed": 2
6745
+ },
6746
+ "drilldown": [],
6747
+ "mark_line": [],
6748
+ "override_config": [],
6749
+ "connect_nulls": false,
6750
+ "no_value_replacement": "",
6751
+ "wrap_table_cells": false,
6752
+ "table_transpose": false,
6753
+ "table_dynamic_columns": false,
6754
+ "color": {
6755
+ "mode": "palette-classic-by-series",
6756
+ "fixedColor": ["#53ca53"],
6757
+ "seriesBy": "last"
6758
+ },
6759
+ "trellis": {
6760
+ "layout": null,
6761
+ "num_of_columns": 1
6762
+ }
6763
+ },
6764
+ "queryType": "sql",
6765
+ "queries": [
6766
+ {
6767
+ "query": "SELECT session_id AS x_axis_1, CAST(ROUND(SUM(CAST(ai_cost_total AS DOUBLE)), 4) AS DECIMAL(18,4)) AS y_axis_1 FROM neurolink_proxy WHERE operation_name = 'proxy.request' AND session_id IS NOT NULL AND session_id != '' AND ai_cost_total IS NOT NULL GROUP BY session_id ORDER BY y_axis_1 DESC LIMIT 20",
6768
+ "vrlFunctionQuery": "",
6769
+ "customQuery": true,
6770
+ "fields": {
6771
+ "stream": "neurolink_proxy",
6772
+ "stream_type": "traces",
6773
+ "x": [
6774
+ {
6775
+ "label": "Session",
6776
+ "alias": "x_axis_1",
6777
+ "column": "x_axis_1",
6778
+ "color": null,
6779
+ "sortBy": "DESC"
6780
+ }
6781
+ ],
6782
+ "y": [
6783
+ {
6784
+ "label": "Cost (USD)",
6785
+ "alias": "y_axis_1",
6786
+ "column": "y_axis_1",
6787
+ "color": null,
6788
+ "aggregationFunction": "sum"
6789
+ }
6790
+ ],
6791
+ "z": [],
6792
+ "breakdown": [],
6793
+ "filter": {
6794
+ "filterType": "group",
6795
+ "logicalOperator": "AND",
6796
+ "conditions": []
6797
+ }
6798
+ },
6799
+ "config": {
6800
+ "promql_legend": "",
6801
+ "layer_type": "scatter",
6802
+ "weight_fixed": 1,
6803
+ "limit": 0,
6804
+ "min": 0,
6805
+ "max": 100,
6806
+ "time_shift": []
6807
+ }
6808
+ }
6809
+ ],
6810
+ "layout": {
6811
+ "x": 0,
6812
+ "y": 43,
6813
+ "w": 48,
6814
+ "h": 10,
6815
+ "i": 9011
6816
+ },
6817
+ "htmlContent": "",
6818
+ "markdownContent": "",
6819
+ "customChartContent": ""
6820
+ }
6821
+ ]
6822
+ },
5565
6823
  {
5566
6824
  "tabId": "traces",
5567
6825
  "name": "Trace Drilldown",