我想将 NewRelic 工具添加到我的flink作业中。我没有看到可以将其他类路径/其他参数传递给bin/flink run <job>
命令的位置。
NewRelic java代理希望-javaagent:<path to jar>
添加到执行路径中。也建议传入配置文件路径。
我将此行添加到所有(3)群集计算机上的 conf / flink-conf.yaml 中:
env.java.opts: "-javaagent:/opt/newrelic/newrelic.jar -Dnewrelic.config.file=/opt/newrelic/newrelic.yml"
当我开始启动群集时,只会启动作业管理器。 任务管理器无法在任何计算机上启动。
我发现添加检测(到目前为止)的唯一方法是更改 bin / flink 末尾的命令行以包含上述参数。这很好,除了它需要运行命令的会话保持打开状态。如果退出,Flink作业将继续,但NewRelic代理退出。
答案 0 :(得分:4)
您可以通过LET docId = "ExampleDocClass/1234567"
// get data for all the edges
LET es = GRAPH_EDGES('EdgeClass',docId,{direction:'any',maxDepth:1,includeData:true})
// create an array of all the neighbor nodes
LET vArray = (
FOR v IN GRAPH_TRAVERSAL('EdgeClass',docId[0],'any',{ maxDepth:1})
FOR v1 IN v RETURN v1.vertex
)
// using node array, return inbound and outbound for each node
LET vs = (
FOR v IN vArray
// inbound and outbound are separate queries because I couldn't figure out
// how to get Arango to differentiate inbout and outbound in the query results
LET oe = (FOR oe1 IN GRAPH_EDGES('EdgeClass',v,{direction:'outbound',maxDepth:1,includeData:true}) RETURN oe1._to)
LET ie = (FOR ie1 IN GRAPH_EDGES('EdgeClass',v,{direction:'inbound',maxDepth:1,includeData:true}) RETURN ie1._from)
RETURN {'vertexData': v, 'outEdges': oe, 'inEdges': ie}
)
RETURN {'edges':es,'vertices':vs}
配置值传递其他JVM启动参数,您可以在Flink的配置文件 private class RdoHandler implements ActionListener {
@Override
public void actionPerformed(ActionEvent ae) {
String temp = txt.getText();
int prev = 0;
JRadioButton jb = (JRadioButton) ae.getSource();
if (jb == BIN) {
btnA.setEnabled(false);
btnB.setEnabled(false);
btnC.setEnabled(false);
btnD.setEnabled(false);
btnE.setEnabled(false);
btnF.setEnabled(false);
btn0.setEnabled(!false);
btn1.setEnabled(!false);
btn2.setEnabled(false);
btn3.setEnabled(false);
btn4.setEnabled(false);
btn5.setEnabled(false);
btn6.setEnabled(false);
btn7.setEnabled(false);
btn8.setEnabled(false);
btn9.setEnabled(false);
temp = txt.getText();
if (prev == 3) {
temp = Integer.toBinaryString(Integer.parseInt(txt.getText(), 8));
txt.setText(temp);
} else if (prev == 2) {
temp = Integer.toBinaryString(Integer.parseInt(txt.getText(), 16));
txt.setText(temp);
} else if (prev == 4) {
temp = Integer.toBinaryString(Integer.parseInt(txt.getText()));
txt.setText(temp);
} else {
txt.setText("");
}
prev = 1;
}
if (jb == HEX) {
btnA.setEnabled(!false);
btnB.setEnabled(!false);
btnC.setEnabled(!false);
btnD.setEnabled(!false);
btnE.setEnabled(!false);
btnF.setEnabled(!false);
btn0.setEnabled(!false);
btn1.setEnabled(!false);
btn2.setEnabled(!false);
btn3.setEnabled(!false);
btn4.setEnabled(!false);
btn5.setEnabled(!false);
btn6.setEnabled(!false);
btn7.setEnabled(!false);
btn8.setEnabled(!false);
btn9.setEnabled(!false);
temp = txt.getText();
if (prev == 1) {
temp = Integer.toHexString(Integer.parseInt(txt.getText(), 2));
txt.setText(temp);
} else if (prev == 3) {
temp = Integer.toHexString(Integer.parseInt(txt.getText(), 8));
txt.setText(temp);
} else if (prev == 4) {
temp = Integer.toHexString(Integer.parseInt(txt.getText()));
txt.setText(temp);
}
prev = 2;
}
if (jb == OCT) {
btnA.setEnabled(false);
btnB.setEnabled(false);
btnC.setEnabled(false);
btnD.setEnabled(false);
btnE.setEnabled(false);
btnF.setEnabled(false);
btn0.setEnabled(!false);
btn1.setEnabled(!false);
btn2.setEnabled(!false);
btn3.setEnabled(!false);
btn4.setEnabled(!false);
btn5.setEnabled(!false);
btn6.setEnabled(!false);
btn7.setEnabled(!false);
btn8.setEnabled(false);
btn9.setEnabled(false);
temp = txt.getText();
if (prev == 1) {
temp = Integer.toOctalString(Integer.parseInt(txt.getText(), 2));
txt.setText(temp);
} else if (prev == 2) {
temp = Integer.toOctalString(Integer.parseInt(txt.getText(), 16));
txt.setText(temp);
} else if (prev == 4) {
temp = Integer.toOctalString(Integer.parseInt(txt.getText()));
txt.setText(temp);
}
prev = 3;
}
if (jb == DEC) {
btnA.setEnabled(false);
btnB.setEnabled(false);
btnC.setEnabled(false);
btnD.setEnabled(false);
btnE.setEnabled(false);
btnF.setEnabled(false);
btn0.setEnabled(!false);
btn1.setEnabled(!false);
btn2.setEnabled(!false);
btn3.setEnabled(!false);
btn4.setEnabled(!false);
btn5.setEnabled(!false);
btn6.setEnabled(!false);
btn7.setEnabled(!false);
btn8.setEnabled(!false);
btn9.setEnabled(!false);
temp = txt.getText();
if (prev == 1) {
temp = Integer.toString(Integer.parseInt(txt.getText(), 2));
txt.setText(temp);
} else if (prev == 3) {
temp = Integer.toString(Integer.parseInt(txt.getText(), 8));
txt.setText(temp);
} else if (prev == 2) {
temp = Integer.toString(Integer.parseInt(txt.getText(), 16));
txt.setText(temp);
}
prev = 4;
}
}
}
中设置该值。
答案 1 :(得分:0)
首先删除值(右侧)中的引号
env.java.opts: -javaagent:/opt/newrelic/newrelic.jar -Dnewrelic.config.file=/opt/newrelic/newrelic.yml
并确保将文件放入&#34; lib&#34; flink目录并将命令重写为
env.java.opts: -javaagent:lib/newrelic.jar -Dnewrelic.config.file=lib/newrelic.yml
&#34; lib&#34;中的所有文件目录将被复制到作业管理器和任务管理器,并在相对路径中提供&#34; ./ lib&#34;