我有一个配置为呈现 Prometheus 查询结果的 Grafana 仪表板面板。查询返回了大量系列,图例显示在右侧。如果用户正在寻找特定的系列,他们可能必须滚动浏览所有系列,并且很容易错过他们正在寻找的系列。所以我想按系列名称对图例进行排序,但我找不到任何方法来做到这一点。
我的系列名称是两个标签的串联,因此如果我可以按标签值对从 PromQL 查询返回的即时向量进行排序,我认为 Grafana 会在图例中使用该顺序。但是我在 Prometheus 中看不到任何方法可以做到这一点。有一个 sort() 函数,但它按样本值排序。而且我看不到任何方法可以对 Grafana 中的图例进行排序。
当我尝试执行以下javascript行时,Chrome 27 beta会抛出一个SyntatxError:
offlineContext = new webkitOfflineAudioContext(2, 7*48000, 48000);
Run Code Online (Sandbox Code Playgroud)
这符合W3C建议书,经过几小时的网络搜索,我看到了几十个显然可以使用这种形式的例子.我知道API可能会发生变化,但我找不到任何暗示.我哪里错了?
奇怪的是,当我在jsfiddle中尝试它时,它不会失败.我甚至尝试在jsfiddle中运行这个代码片段存在的整个函数,删除了几个项目.下面是我正在尝试运行的功能.执行函数时指示出现"SyntaxError Dom Exception 12".
我有一个工作的音频应用程序,我只是尝试添加后台处理以便以后使用OfflineAudioContext进行渲染.如果我在我的init函数中定义OfflineAudoiContext,我不会在那里得到语法错误.但我需要在createRenderData()函数中定义它,因为我需要为每个媒体源设置长度和采样率,如果我调用没有参数的OfflineAudioContext构造函数,我会得到一个TypeError.此外,我在API中没有看到任何方法来设置现有OfflineAudioContext的长度和采样率.
AudioUI.createRenderData = function() {
var url = BGAudioUI.renderQueue.pop();
if (url) {
BGAudioUI.media = new Audio(url);
BGAudioUI.media.addEventListener('durationchange', function() {
console.log("background duration: " + BGAudioUI.media.duration);
BGAudioUI.duration = BGAudioUI.media.duration;
//BGAudioUI.allData = new Float32Array(Math.floor((AudioUI.context.sampleRate.toFixed() / AudioUI.downsampleFactor.toFixed() * BGAudioUI.duration)) + 1);
//console.log("calculated sample rate: " + Math.floor(AudioUI.context.sampleRate / AudioUI.downsampleFactor.toFixed()));
//console.log("duration: " + BGAudioUI.duration);
BGAudioUI.offlineContext = new webkitOfflineAudioContext(2, 7*48000, 48000); //SyntaxError DOM Exception 12 occurs here
BGAudioUI.mediaSource = BGAudioUI.offlineContext.createMediaElementSource(BGAudioUI.media);
BGAudioUI.offlineContext.oncomplete = …Run Code Online (Sandbox Code Playgroud) 编辑:随着问题的本质变得更加清晰,更新了标题
我正在尝试实现一个非常简单的 socket.io 连接,以将广播事件从 Flask 服务器发送到 Javscript 客户端。第一条服务器消息到达客户端,但仅此而已。在服务器端,它不断调用emit并定期更新数据,但客户端在第一个消息之后再也不会收到任何消息。
这是 JavaScript 客户端(从 React 应用程序中提取的相关行):
var io=require('socket.io-client')
var socket = io.connect();
socket.on('connect', function() {
console.log('Connection established');
});
socket.on('message', function(data){
console.log('Message received');
console.log(data);
//only gets called for the first message sent by the server
}
Run Code Online (Sandbox Code Playgroud)
Flask 服务器代码:
from flask_socketio import SocketIO, emit
app = Flask(...)
socketio = SocketIO(app, async_mode="eventlet")
socketio.emit('message', "Test data", broadcast=True)
#Update function called periodically with JSON data
#of the form {"data": {...}}
def update(data):
data = json.dumps(data)
socketio.emit('message', data, broadcast=True) …Run Code Online (Sandbox Code Playgroud) 我正在使用 react-modal,我找不到任何方法来成功设置 Modal 的位置。我在每个在线示例中使用内联样式,但它们没有效果。我正在做我在 react-modal 站点上的 codepen 示例中看到的工作,但它在我的应用程序中不起作用。有些东西显然不同,但我看不出它是什么。
这就是我渲染模态的方式:
render: function() {
return (
<Modal
bsSize={this.props.size}
aria-labelledby="contained-modal-title-lg"
show={this.props.show}
style={{ content : {top: '70%'}}}
onHide={this.hideModal}>
<Modal.Header>
<Modal.Title id="contained-modal-title-lg">{this.props.modalTitle}</Modal.Title>
</Modal.Header>
<Modal.Body>
{this.props.modalBody || this.modalBody}
</Modal.Body>
<Modal.Footer>
<Button onClick={this.hideModal}>Cancel</Button>
<Button bsStyle="primary" onClick={this.props.modalCallback}>{this.props.confirmButtonText}</Button>
</Modal.Footer>
</Modal>
);
Run Code Online (Sandbox Code Playgroud)
我为 style 属性尝试了许多不同的值,但我设置的任何值都无效。我也尝试过没有该bsSize属性,但这也不起作用。我只需要内容的顶部边框稍微低一些,因为它是在同一位置的另一个模态之上打开的,并且我希望它在视觉上明显地显示页面上打开了两个模态。我正在使用 react-modal 3.3.1。
javascript ×3
flask ×1
grafana ×1
prometheus ×1
python ×1
react-modal ×1
reactjs ×1
socket.io ×1
sorting ×1