Skip to content

Commit b4e0e57

Browse files
author
jacob.aronoff
committed
Made public API static
1 parent 2bc7a26 commit b4e0e57

File tree

5 files changed

+37
-44
lines changed

5 files changed

+37
-44
lines changed

Example/SwiftDog/ViewController.swift

+7-7
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ class ViewController: UIViewController, UITextFieldDelegate {
1515
override func viewDidLoad() {
1616
super.viewDidLoad()
1717
// Do any additional setup after loading the view, typically from a nib.
18-
Datadog.dd.metric.send(metric: "ios.device.gauge", points: 1)
19-
Datadog.dd.metric.send(metric: "ios.device.count", points: 1, host: nil, tags: ["device:test_device"], type: .count(1))
18+
Datadog.metric.send(metric: "ios.device.gauge", points: 1)
19+
Datadog.metric.send(metric: "ios.device.count", points: 1, host: nil, tags: ["device:test_device"], type: .count(1))
2020
self.metricValue.delegate = self
2121
}
2222

@@ -30,13 +30,13 @@ class ViewController: UIViewController, UITextFieldDelegate {
3030
}
3131

3232
@IBAction func sendEvent(_ sender: Any) {
33-
Datadog.dd.event.send(title: "This is a test event", text: "We can now send events from an iOS device!")
34-
Datadog.dd.metric.send(metric: "ios.test.event.sent", points: 1, type: .count(1))
33+
Datadog.event.send(title: "This is a test event", text: "We can now send events from an iOS device!")
34+
Datadog.metric.send(metric: "ios.test.event.sent", points: 1, type: .count(1))
3535
}
3636

3737
@IBAction func sendMetric(_ sender: Any) {
3838
if let metric_value = Int(metricValue.text!) {
39-
Datadog.dd.metric.send(metric: "ios.test.value", points: Float(metric_value), type: .gauge)
39+
Datadog.metric.send(metric: "ios.test.value", points: Float(metric_value), type: .gauge)
4040
}
4141
}
4242

@@ -48,7 +48,7 @@ class ViewController: UIViewController, UITextFieldDelegate {
4848
}
4949
}
5050
@IBAction func resetCredentials(_ sender: Any) {
51-
Datadog.dd.resetCredentials()
51+
Datadog.resetCredentials()
5252
}
5353

5454
@IBAction func sendTimedData(_ sender: Any) {
@@ -57,7 +57,7 @@ class ViewController: UIViewController, UITextFieldDelegate {
5757
let end = DispatchTime.now()
5858
let nanoTime = end.uptimeNanoseconds - start.uptimeNanoseconds
5959
let timeInterval = Double(nanoTime) / 1_000_000_000
60-
Datadog.dd.metric.send(metric: "ios.test.fib.timing", points: Float(timeInterval))
60+
Datadog.metric.send(metric: "ios.test.fib.timing", points: Float(timeInterval))
6161

6262
}
6363

Example/Tests/Tests.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ class MetricSpec: QuickSpec {
2727
let gauge_metric: Metric.MetricData = Metric.MetricData(host: nil, tags: ["test:1"], metric_name:"test.metric1", type: Metric.MetricData.MetricType.gauge, points: [DataPoint(timestamp: TimeInterval(1525377826.2537289), value: 1)])
2828
let rate_metric: Metric.MetricData = Metric.MetricData(host: "device:fun_ios", tags: ["test:2"], metric_name:"test.metric2", type: Metric.MetricData.MetricType.rate(10), points: [DataPoint(timestamp: TimeInterval(1525377828.2537289), value: 2)])
2929
let count_metric: Metric.MetricData = Metric.MetricData(host: "device:another_device", tags: ["test:3"], metric_name:"test.metric3", type: Metric.MetricData.MetricType.count(100), points: [DataPoint(timestamp: TimeInterval(1525377820.2537289), value: 3)])
30-
Datadog.dd.metric.send(series: [gauge_metric, rate_metric, count_metric])
30+
Datadog.metric.send(series: [gauge_metric, rate_metric, count_metric])
3131
it("can serialize to json") {
3232
let encoder = JSONEncoder()
3333
do {
34-
let jsonData = try encoder.encode(Datadog.dd.metric)
34+
let jsonData = try encoder.encode(Datadog.metric)
3535
let jsonString = String(data: jsonData, encoding: .utf8)
3636
expect(jsonString!).to(equal("{\"series\":[{\"points\":[[1525377826.2537289,1]],\"tags\":[\"test:1\"],\"type\":\"gauge\",\"metric\":\"test.metric1\"},{\"points\":[[1525377828.2537289,2]],\"interval\":10,\"tags\":[\"test:2\"],\"host\":\"device:fun_ios\",\"type\":\"rate\",\"metric\":\"test.metric2\"},{\"points\":[[1525377820.2537289,3]],\"interval\":100,\"tags\":[\"test:3\"],\"host\":\"device:another_device\",\"type\":\"count\",\"metric\":\"test.metric3\"}]}"))
3737
} catch {

SwiftDog/Classes/Datadog.swift

+17-21
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,35 @@
22

33
public class Datadog: API {
44

5-
internal var base_url: String = "api.datadoghq.com/api/v1/"
6-
internal var interval_seconds: TimeInterval = TimeInterval(10)
7-
public var metric: Metric = Metric.metric
8-
public var event: Event = Event.event
9-
private var timer: Timer = Timer()
10-
public static let dd = Datadog()
11-
internal let host = UIDevice.current.identifierForVendor!.uuidString
12-
internal let model = UIDevice.current.model
13-
internal var use_agent = false
14-
internal var auth:DatadogAuthentication? = nil
5+
internal static var base_url: String = "api.datadoghq.com/api/v1/"
6+
internal static var interval_seconds: TimeInterval = TimeInterval(10)
7+
public static var metric: Metric = Metric.metric
8+
public static var event: Event = Event.event
9+
private static var timer: Timer = Timer()
10+
internal static let host = UIDevice.current.identifierForVendor!.uuidString
11+
internal static let model = UIDevice.current.model
12+
internal static var use_agent = false
13+
internal static var auth:DatadogAuthentication? = nil
1514

16-
@objc private func sendData() {
15+
@objc private static func sendData() {
1716
print("Sending metrics to the Datadog API.")
1817
if use_agent {
1918
IOSAgent.send_agent_metrics()
2019
}
2120
do {
22-
for var endpoint in [self.metric, self.event] as [DataProducer] {
23-
try endpoint._send_data(url: base_url) { (error: Error?) in
24-
print(error!)
25-
}
21+
try self.metric._send_data(url: base_url) { (error: Error?) in
22+
print(error!)
23+
}
24+
try self.event._send_data(url: base_url) { (error: Error?) in
25+
print(error!)
2626
}
2727
} catch {
2828
fatalError(error.localizedDescription)
2929
}
3030

3131
}
3232

33-
public func initialize_api(with agent:Bool=false, default_tags:Bool=false) {
33+
public static func initialize_api(with agent:Bool=false, default_tags:Bool=false) {
3434
self.auth = DatadogAuthentication()
3535
self.use_agent = agent
3636
if default_tags {
@@ -40,15 +40,11 @@ public class Datadog: API {
4040
self.timer = Timer.scheduledTimer(timeInterval: self.interval_seconds, target: self, selector: #selector(Datadog.sendData), userInfo: nil, repeats: true)
4141
}
4242

43-
public func resetCredentials() {
43+
public static func resetCredentials() {
4444
if self.auth != nil {
4545
self.auth!.resetCredentials()
4646
}
4747
}
4848

49-
private init() {
50-
51-
}
52-
5349

5450
}

SwiftDog/Classes/IOSAgent.swift

+7-7
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,19 @@ public struct IOSAgent {
3434

3535
internal static func send_agent_metrics() {
3636
if let cpu_usage = IOSAgent.current_CPU() {
37-
Datadog.dd.metric.send(metric: "system.cpu.user", points: Float(cpu_usage["user"]!), host: Datadog.dd.host, tags: [], type: .gauge)
38-
Datadog.dd.metric.send(metric: "system.cpu.idle", points: Float(cpu_usage["idle"]!), host: Datadog.dd.host, tags: [], type: .gauge)
39-
Datadog.dd.metric.send(metric: "system.cpu.system", points: Float(cpu_usage["system"]!), host: Datadog.dd.host, tags: [], type: .gauge)
37+
Datadog.metric.send(metric: "system.cpu.user", points: Float(cpu_usage["user"]!), host: Datadog.host, tags: [], type: .gauge)
38+
Datadog.metric.send(metric: "system.cpu.idle", points: Float(cpu_usage["idle"]!), host: Datadog.host, tags: [], type: .gauge)
39+
Datadog.metric.send(metric: "system.cpu.system", points: Float(cpu_usage["system"]!), host: Datadog.host, tags: [], type: .gauge)
4040
}
4141
if let mem_usage = IOSAgent.current_MEM() {
42-
Datadog.dd.metric.send(metric: "system.mem.used", points: mem_usage, host: Datadog.dd.host, tags: [], type: .gauge)
42+
Datadog.metric.send(metric: "system.mem.used", points: mem_usage, host: Datadog.host, tags: [], type: .gauge)
4343
}
4444
let data_usage_info = IOSAgent.getDataUsage()
4545
if IOSAgent.previous_wifi_received != 0 || IOSAgent.previous_wifi_sent != 0 {
46-
Datadog.dd.metric.send(metric: "system.net.bytes_sent", points: Float(data_usage_info.wifiReceived - self.previous_wifi_received), host: Datadog.dd.host, tags: [], type: Metric.MetricData.MetricType.rate(Float(Datadog.dd.interval_seconds)))
47-
Datadog.dd.metric.send(metric: "system.net.bytes_rcvd", points: Float(data_usage_info.wifiSent - self.previous_wifi_sent), host: Datadog.dd.host, tags: [], type: Metric.MetricData.MetricType.rate(Float(Datadog.dd.interval_seconds)))
46+
Datadog.metric.send(metric: "system.net.bytes_sent", points: Float(data_usage_info.wifiReceived - self.previous_wifi_received), host: Datadog.host, tags: [], type: Metric.MetricData.MetricType.rate(Float(Datadog.interval_seconds)))
47+
Datadog.metric.send(metric: "system.net.bytes_rcvd", points: Float(data_usage_info.wifiSent - self.previous_wifi_sent), host: Datadog.host, tags: [], type: Metric.MetricData.MetricType.rate(Float(Datadog.interval_seconds)))
4848
}
49-
Datadog.dd.metric.send(metric: "ios.device.battery.level", points: IOSAgent.get_battery_level())
49+
Datadog.metric.send(metric: "ios.device.battery.level", points: IOSAgent.get_battery_level())
5050
IOSAgent.previous_wifi_sent = data_usage_info.wifiSent
5151
IOSAgent.previous_wifi_received = data_usage_info.wifiReceived
5252
}

SwiftDog/Classes/Types.swift

+4-7
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,16 @@ public extension Date {
1717
}
1818

1919
internal protocol API {
20-
var base_url: String { get }
21-
var interval_seconds: TimeInterval { get set }
22-
func resetCredentials()
20+
static var base_url: String { get }
21+
static var interval_seconds: TimeInterval { get set }
22+
static func resetCredentials()
2323
}
2424

2525
public protocol DataType: Encodable {
2626
var host: String? { get set }
2727
var tags: [String] { get set }
2828
}
2929

30-
31-
32-
3330
public protocol Endpoint {
3431
associatedtype EndpointDataType: DataType
3532
var endpoint: String { get }
@@ -54,7 +51,7 @@ internal protocol DataProducer: Endpoint {
5451

5552
extension DataProducer {
5653
internal func create_url(url: String) throws -> URL {
57-
guard let api_key = Datadog.dd.auth?.api_key, let app_key = Datadog.dd.auth?.app_key else {
54+
guard let api_key = Datadog.auth?.api_key, let app_key = Datadog.auth?.app_key else {
5855
throw DatadogAPIError.keyNotSet("Not Authenticated")
5956
}
6057
return URL(string: "https://"+url+self.endpoint + "?api_key=\(api_key)&application_key=\(app_key)")!

0 commit comments

Comments
 (0)