瀏覽代碼

Make max open, max idle connections and connection max life time configurable

Axel Pirek 7 年之前
父節點
當前提交
dd09ece8c9

+ 6 - 2
pkg/tsdb/sql_engine.go

@@ -98,8 +98,12 @@ var NewSqlQueryEndpoint = func(config *SqlQueryEndpointConfiguration, rowTransfo
 		return nil, err
 		return nil, err
 	}
 	}
 
 
-	engine.SetMaxOpenConns(10)
-	engine.SetMaxIdleConns(10)
+	maxOpenConns := config.Datasource.JsonData.Get("maxOpenConns").MustInt(0)
+	engine.SetMaxOpenConns(maxOpenConns)
+	maxIdleConns := config.Datasource.JsonData.Get("maxIdleConns").MustInt(2)
+	engine.SetMaxIdleConns(maxIdleConns)
+	connMaxLifetime := config.Datasource.JsonData.Get("connMaxLifetime").MustInt(14400)
+	engine.SetConnMaxLifetime(time.Duration(connMaxLifetime) * time.Second)
 
 
 	engineCache.versions[config.Datasource.Id] = config.Datasource.Version
 	engineCache.versions[config.Datasource.Id] = config.Datasource.Version
 	engineCache.cache[config.Datasource.Id] = engine
 	engineCache.cache[config.Datasource.Id] = engine

+ 18 - 0
public/app/plugins/datasource/mssql/partials/config.html

@@ -29,6 +29,24 @@
 	</div>
 	</div>
 </div>
 </div>
 
 
+<div class="gf-form-group">
+  <div class="gf-form max-width-30">
+    <span class="gf-form-label width-11">Max open connections</span>
+    <input type="number" min="0" class="gf-form-input" ng-model="ctrl.current.jsonData.maxOpenConns" placeholder="unlimited"></input>
+  </div>
+  <div class="gf-form max-width-30">
+    <span class="gf-form-label width-11">Max idle connections</span>
+    <input type="number" min="0" class="gf-form-input" ng-model="ctrl.current.jsonData.maxIdleConns" placeholder="2"></input>
+  </div>
+  <div class="gf-form max-width-30">
+    <span class="gf-form-label width-11">Connection lifetime</span>
+    <input type="number" min="0" class="gf-form-input" ng-model="ctrl.current.jsonData.connMaxLifetime" placeholder="14400"></input>
+			<info-popover mode="right-absolute">
+        The connection lifetime in seconds.
+			</info-popover>
+  </div>
+</div>
+
 <h3 class="page-heading">MSSQL details</h3>
 <h3 class="page-heading">MSSQL details</h3>
 
 
 <div class="gf-form-group">
 <div class="gf-form-group">

+ 18 - 0
public/app/plugins/datasource/mysql/partials/config.html

@@ -24,6 +24,24 @@
 	</div>
 	</div>
 </div>
 </div>
 
 
+<div class="gf-form-group">
+  <div class="gf-form max-width-30">
+    <span class="gf-form-label width-11">Max open connections</span>
+    <input type="number" min="0" class="gf-form-input" ng-model="ctrl.current.jsonData.maxOpenConns" placeholder="unlimited"></input>
+  </div>
+  <div class="gf-form max-width-30">
+    <span class="gf-form-label width-11">Max idle connections</span>
+    <input type="number" min="0" class="gf-form-input" ng-model="ctrl.current.jsonData.maxIdleConns" placeholder="2"></input>
+  </div>
+  <div class="gf-form max-width-30">
+    <span class="gf-form-label width-11">Connection lifetime</span>
+    <input type="number" min="0" class="gf-form-input" ng-model="ctrl.current.jsonData.connMaxLifetime" placeholder="14400"></input>
+			<info-popover mode="right-absolute">
+        The connection lifetime in seconds.
+			</info-popover>
+  </div>
+</div>
+
 <h3 class="page-heading">MySQL details</h3>
 <h3 class="page-heading">MySQL details</h3>
 
 
 <div class="gf-form-group">
 <div class="gf-form-group">

+ 18 - 0
public/app/plugins/datasource/postgres/partials/config.html

@@ -38,6 +38,24 @@
 	</div>
 	</div>
 </div>
 </div>
 
 
+<div class="gf-form-group">
+  <div class="gf-form max-width-30">
+    <span class="gf-form-label width-11">Max open connections</span>
+    <input type="number" min="0" class="gf-form-input" ng-model="ctrl.current.jsonData.maxOpenConns" placeholder="unlimited"></input>
+  </div>
+  <div class="gf-form max-width-30">
+    <span class="gf-form-label width-11">Max idle connections</span>
+    <input type="number" min="0" class="gf-form-input" ng-model="ctrl.current.jsonData.maxIdleConns" placeholder="2"></input>
+  </div>
+  <div class="gf-form max-width-30">
+    <span class="gf-form-label width-11">Connection lifetime</span>
+    <input type="number" min="0" class="gf-form-input" ng-model="ctrl.current.jsonData.connMaxLifetime" placeholder="14400"></input>
+			<info-popover mode="right-absolute">
+        The connection lifetime in seconds.
+			</info-popover>
+  </div>
+</div>
+
 <h3 class="page-heading">PostgreSQL details</h3>
 <h3 class="page-heading">PostgreSQL details</h3>
 
 
 <div class="gf-form-group">
 <div class="gf-form-group">