Toggle navigation
Toggle navigation
This project
Loading...
Sign in
홍길동
/
onos
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
alshabib
2014-10-22 21:53:39 -0700
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
23a8d7c756114e2cde137b61761df2f31e8570d3
23a8d7c7
1 parent
44521ecc
added stats command
Change-Id: Id6ac04e116858c4a105329ddcf5557fee93dfc8d
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
102 additions
and
0 deletions
cli/src/main/java/org/onlab/onos/cli/net/GetStatistics.java
cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
core/api/src/main/java/org/onlab/onos/net/statistic/DefaultLoad.java
cli/src/main/java/org/onlab/onos/cli/net/GetStatistics.java
0 → 100644
View file @
23a8d7c
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package
org
.
onlab
.
onos
.
cli
.
net
;
import
org.apache.karaf.shell.commands.Argument
;
import
org.apache.karaf.shell.commands.Command
;
import
org.onlab.onos.cli.AbstractShellCommand
;
import
org.onlab.onos.net.ConnectPoint
;
import
org.onlab.onos.net.DeviceId
;
import
org.onlab.onos.net.PortNumber
;
import
org.onlab.onos.net.statistic.Load
;
import
org.onlab.onos.net.statistic.StatisticService
;
import
static
org
.
onlab
.
onos
.
net
.
DeviceId
.
deviceId
;
import
static
org
.
onlab
.
onos
.
net
.
PortNumber
.
portNumber
;
/**
* Fetches statistics.
*/
@Command
(
scope
=
"onos"
,
name
=
"get-stats"
,
description
=
"Fetches stats for a connection point"
)
public
class
GetStatistics
extends
AbstractShellCommand
{
@Argument
(
index
=
0
,
name
=
"connectPoint"
,
description
=
"Device/Port Description"
,
required
=
true
,
multiValued
=
false
)
String
connectPoint
=
null
;
@Override
protected
void
execute
()
{
StatisticService
service
=
get
(
StatisticService
.
class
);
DeviceId
ingressDeviceId
=
deviceId
(
getDeviceId
(
connectPoint
));
PortNumber
ingressPortNumber
=
portNumber
(
getPortNumber
(
connectPoint
));
ConnectPoint
cp
=
new
ConnectPoint
(
ingressDeviceId
,
ingressPortNumber
);
Load
load
=
service
.
load
(
cp
);
print
(
"Load on %s -> %s"
,
cp
,
load
);
}
/**
* Extracts the port number portion of the ConnectPoint.
*
* @param deviceString string representing the device/port
* @return port number as a string, empty string if the port is not found
*/
private
String
getPortNumber
(
String
deviceString
)
{
int
slash
=
deviceString
.
indexOf
(
'/'
);
if
(
slash
<=
0
)
{
return
""
;
}
return
deviceString
.
substring
(
slash
+
1
,
deviceString
.
length
());
}
/**
* Extracts the device ID portion of the ConnectPoint.
*
* @param deviceString string representing the device/port
* @return device ID string
*/
private
String
getDeviceId
(
String
deviceString
)
{
int
slash
=
deviceString
.
indexOf
(
'/'
);
if
(
slash
<=
0
)
{
return
""
;
}
return
deviceString
.
substring
(
0
,
slash
);
}
}
cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
View file @
23a8d7c
...
...
@@ -119,6 +119,12 @@
</optional-completers>
</command>
<command>
<action
class=
"org.onlab.onos.cli.net.GetStatistics"
/>
<completers>
<ref
component-id=
"connectPointCompleter"
/>
</completers>
</command>
<command>
<action
class=
"org.onlab.onos.cli.net.AddMultiPointToSinglePointIntentCommand"
/>
<completers>
<ref
component-id=
"connectPointCompleter"
/>
...
...
core/api/src/main/java/org/onlab/onos/net/statistic/DefaultLoad.java
View file @
23a8d7c
package
org
.
onlab
.
onos
.
net
.
statistic
;
import
com.google.common.base.MoreObjects
;
import
org.onlab.onos.net.flow.FlowRuleProvider
;
/**
...
...
@@ -53,4 +54,11 @@ public class DefaultLoad implements Load {
public
long
time
()
{
return
time
;
}
@Override
public
String
toString
()
{
return
MoreObjects
.
toStringHelper
(
"Load"
).
add
(
"rate"
,
rate
())
.
add
(
"latest"
,
latest
()).
toString
();
}
}
...
...
Please
register
or
login
to post a comment