Multiple function observations of the same Gaussian process


I am new to pyro. I have a question regarding having multiple observations of the same GP (in this case with a linear mean function). An example of such a process is simulated below (used pymc3 as I am not sure how to evaluate a cov function with pyro).

import pymc3 as pm
import numpy as np
import matplotlib.pyplot as plt

lengthscale = 0.2
eta = 2.0
cov = eta ** 2 *, lengthscale)

X = np.arange(10)[:, None]
K = cov(X).eval()

gpl = pm.MvNormal.dist(mu=np.zeros(K.shape[0]), cov=K).random(size=10).T

# linear model 
slope = 1.2
intercept = 2 

x_train = np.random.normal(pm.MvNormal.dist(mu=np.squeeze(X)*slope + intercept, cov=K).random(size=4).T, 0.1)
plt.figure(figsize=(14, 4))
plt.plot(X, x_train)
plt.title("time series generated")

I have been reading through the documentation and I did not find a way to deal with multiple observations of the same GP. Is it possible in pyro?